2015-08-28 38 views
0

我有這段代碼是沒有做我想要的東西:的Javascript/jQuery的onbeforeunload HTML事件麻煩

$('body').attr("onbeforeunload", "return dojoclick()"); 

function dojoclick(){ 
    dojo.byId('jstop').click(); 
} 

通過「點擊」功能無法正常工作,但如果我取代「點擊」 「刪除」 它的工作原理...例如:

$('body').attr("onbeforeunload", "return dojoclick()"); 

function dojoclick(){ 
    dojo.byId('jstop').remove(); //Element is removed properly 
} 

「點擊」 功能工作,因爲如果我稱之爲 「dojoclick()」,通過控制檯,它觸發:

enter image description here

點擊按鈕後,會打開一個記事本(它調用打開notepad.exe的Java例程)。

爲什麼不是功能dojoclick()執行onbeforeunload

+0

什麼?瀏覽器打開記事本? –

+0

id爲「jstop」的按鈕有一個關聯的事件,它調用打開記事本的Java例程。我只想在窗口關閉時觸發該事件。如果我知道怎麼做,我會直接調用事件內部的函數(Dojo做到了,我對Dojo一無所知)。所以最簡單的(理論)方法是模擬點擊,以便事件調用函數。 記事本只是一個測試。它表示Java例程已執行。 – ProtectedVoid

+0

感謝哥們。我只對記事本執行感到好奇。我不確定我是否是合適的人回答。一切順利您的問題。 –

回答

0

嘗試使用

$(window).on('beforeunload', function(){ 
       dojoclick(); 
     }); 

,而不是將其追加爲HTML屬性。

,或者你可以直接使用

$(window).on('beforeunload', function(){ 
       dojo.byId('jstop').click(); 
     }); 

可惜我不能幫你多,我真的不知道道場是如何工作的

+0

無效:/無論如何感謝 – ProtectedVoid

0

我找到了解決辦法,也許是因爲它的功能相當糟糕:

dojo.addOnUnload(function(){ 
    dojo.byId('jstop').click(); 
}); 

它隨機工作(?)我的意思是,我關閉窗口10次,它觸發6.我討厭這個。

+0

我認爲問題是(可能)延遲時間。點擊後添加返回「東西」,然後再次檢查? – takid1412