Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/jQuery onbeforeunload HTML事件故障_Javascript_Jquery_Events_Triggers_Dojo - Fatal编程技术网

Javascript/jQuery onbeforeunload HTML事件故障

Javascript/jQuery onbeforeunload HTML事件故障,javascript,jquery,events,triggers,dojo,Javascript,Jquery,Events,Triggers,Dojo,我有一段代码没有实现我想要的: $('body').attr("onbeforeunload", "return dojoclick()"); function dojoclick(){ dojo.byId('jstop').click(); } “单击”功能不起作用,但如果我将“单击”替换为“删除”,它会起作用。。。例如: $('body').attr("onbeforeunload", "return dojoclick()"); function dojoclick(){

我有一段代码没有实现我想要的:

$('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
}
“Click”函数之所以有效,是因为如果我通过控制台调用“dojoclick()”,它会触发:

单击按钮后,将打开一个记事本(它调用一个Java例程,该例程将打开notepad.exe)

为什么函数
dojoclick()

$(window).on('beforeunload', function(){
              dojoclick();
       });
而不是将其附加为HTML属性

或者您可以直接使用

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

不幸的是,我帮不了你更多的忙,我真的不知道dojo是如何工作的

我找到了一个解决方案,也许它很糟糕,因为它的功能:

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

它随机工作(?)我的意思是,我关闭窗口10次,它触发6次。我讨厌这个。

什么?浏览器打开记事本?id为“jstop”的按钮有一个关联事件,该事件调用打开记事本的Java例程。我只想在窗口关闭时触发该事件。如果我知道怎么做,我会直接调用事件内部的函数(Dojo是这样做的,我对Dojo一无所知)。因此,最简单(理论上)的方法是模拟一次单击,以便事件调用函数。记事本只是一个测试。它表示Java例程已经执行。谢谢你,伙计。我只对记事本的执行感到好奇。我不确定我是否是回答这个问题的合适人选。我想问题是(可能)耽误时间。单击后添加返回“某物”,然后再次检查?