2014-09-01 64 views
0

我想在body onunload事件中調用兩個函數,但沒有工作。如何使用javascript在onunload身上調用多個函數?

下面是我打電話的第一個函數..

function closePopUps() 
{ 
    if(childPops.length == 0) return; 

     for(i=0; i<childPops.length; i++) 
     { 
      childPops[i].close(); 
     } 
} 

然後第二個功能...

function updateStatus() 
{ 
PageMethods.UPDATE_STATUS(); 
} 

我打電話給他們這樣的...

<body onunload="closePopUps();updateStatus();"> 

但第二個功能不起作用。只要我只打電話給updateStatus()函數,它仍然不起作用。

回答

2

它更好地調用CombinedMethod來啓動對多個方法的調用。

<body onunload="CombinedMethods()"> 

,然後裏面的方法發起呼叫,以多種方法..

function CombinedMethods() 
{ 
    closePopUps(); 
    updateStatus(); 
    M1(); 
    M2(); 
    etc_method(); 
} 
+0

我試過了,但沒有工作.. – 2014-09-01 06:41:25

+0

,但我認爲它應該工作..以及鉻不支持onunload,否則我一定嘗試過..你可以看到[http://jsfiddle.net /uk85zzhh/](http://jsfiddle.net/uk85zzhh/)在IE瀏覽器中運行它的工作..點擊網址,然後刷新頁面或在同一個標​​籤頁中打開新的網址..它會顯示三個警報M1,M2和M3 – 2014-09-01 07:22:36

0

你可以打電話給你的功能在以下方式,

$(document).ready(function(){ 
    window.onunload = function(evt) { 
     //call your functions 
    }; 
}); 
+0

什麼是evt?這是一個JavaScript字嗎? – 2014-09-01 06:44:26

+0

這是一個事件對象。 – VPK 2014-09-01 06:48:17

+0

好吧,我會嘗試... – 2014-09-01 06:51:42

0

如果你的第二個功能是不是再工作檢查幾件事

1.Set E nablePageMethods屬性爲true
2.標記你的方法爲靜態,並給它WebMethod屬性(system.web.services;)像這樣

[WebMethod] 
    public static string sample(string name) 
    { 
     return name; 
    } 

現在嘗試ACCES PageMethod的這樣

function updateStatus() 
{ 
PageMethods.sample("Test"); 
} 

現在你的第二個功能也將工作。並嘗試將這兩種方法結合起來,並以單一方法調用它們。

+0

我已經將ScriptManager的EnablePageMethods設置爲true。然後,我試圖在按鈕點擊中調用該函數,它的工作原理。但是,當我在onunload事件中調用它時,它沒有 – 2014-09-01 06:43:41

+0

你嘗試了「onbeforeunload」事件。你應該在「onbeforeunload」和第一個「Onunload」事件上調用你的第二個方法。試試這個 – yogi970 2014-09-01 06:45:35

+0

它也可能是瀏覽器的問題。有些時候,新版本的Firefox不會響應pagemethod請求。在不同的瀏覽器中嘗試你的代碼或者它可能是由於你的第一個方法嘗試在你的第一個方法之前調用它 – yogi970 2014-09-01 06:49:56

相關問題