2015-08-28 76 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