[英]How to perform a JavaScript function when this specific onclick event is performed?
我不太喜歡 JavaScript,我有以下問題。
進入 JSP 頁面,我有一些像這樣的“鏈接”:
<tr onmouseout="Javascript: this.style.background='#EAEFFF'; this.style.color='#003399';" onmouseover="Javascript: this.style.background='#003399'; this.style.color='#FFFFFF'; this.style.cursor='hand';" style="background-color: #EAEFFF;" onclick="Javascript: document.location.href='edi.do?serv=4.1';">
<td>
<!--A HREF="edi.do?serv=4.1" class="linkBlue" onMouseOver="self.status='Comunicazioni'; return true"-->
Comunicazioni
</td>
</tr>
正如你在前面的代碼片段中看到的,鏈接還沒有通過經典的a href
實現,而是由 JavaScript 使用以下表達式實現:
onclick="Javascript: document.location.href='edi.do?serv=4.1';"
因此,如果我說錯誤的斷言,請糾正我,我認為(當用戶單擊tr 時)通過Javascript:
它執行以下打開鏈接的 JavaScript 操作。 這是正確的解釋嗎?
它的工作原理,但我的問題是,在這樣做之前,我必須執行特定loadingPopUp()
JavaScript函數定義成
<script type="text/javascript">...</script>
我頁面的部分。 所以我的問題是:如何在Javascript: document.location.href='edi.do?serv=4.1';
之前執行loadingPopUp()
函數Javascript: document.location.href='edi.do?serv=4.1';
onclick
事件?
將onclick
事件更改為:
onclick="changeLocationTo('edi.do?serv=4.1')"
創建一個新的js函數:
function changeLocationTo(newLocation)
{
loadingPopUp();
// you may add an timeout here or to handle a popup action like closing it
document.location.href = newLocation;
}
是的,你的說法完全正確。 但是我認為如果您在更改 url 之前調用您的函數,那么這將不是正確的方法,因為第二個函數將在您的loadingpopup函數之后立即執行並將用戶重定向到不同的頁面,所以我認為您打開彈出窗口的目的將無法實現。
所以試試這個
方式 1:如果您想加載彈出窗口並立即重定向用戶
function fnOpenNewLink(){
loadingPopUp();
document.location.href='edi.do?serv=4.1';
}
方式2:如果您想加載彈出窗口,然后根據您的要求重定向用戶。
function fnOpenNewLink(){
loadingPopUp(function(){
document.location.href='edi.do?serv=4.1';
});
}
function loadingPopUp(callback){
//your stuff
//when everything is done, just call the callback
callback();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.