簡體   English   中英

執行此特定 onclick 事件時如何執行 JavaScript 函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM