Javascript/jQuery onbeforeunload HTML 事件麻烦
Posted
技术标签:
【中文标题】Javascript/jQuery onbeforeunload HTML 事件麻烦【英文标题】:Javascript/jQuery onbeforeunload HTML Event trouble 【发布时间】:2015-08-28 09:38:11 【问题描述】:我的这段代码没有做我想做的事:
$('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()”,它会触发:
单击按钮后,它会打开一个记事本(它调用一个 Java 例程来打开 notepad.exe)。
为什么函数dojoclick()
不执行onbeforeunload
?
【问题讨论】:
什么?浏览器打开记事本? ID 为“jstop”的按钮有一个关联事件,该事件调用一个打开记事本的 Java 例程。我只想在窗口关闭时触发该事件。如果我知道怎么做,我会直接调用事件内部的函数(Dojo 是这样做的,而我对 Dojo 一无所知)。所以最简单(理论上)的方法是模拟点击,以便事件调用函数。记事本只是一个测试。它表示 Java 例程已被执行。 谢谢哥们。我只是对记事本执行感到好奇。我不确定我是否是合适的人选。祝你的问题一切顺利。 【参考方案1】:尝试使用
$(window).on('beforeunload', function()
dojoclick();
);
而不是将其附加为 html 属性。
也可以直接使用
$(window).on('beforeunload', function()
dojo.byId('jstop').click();
);
很遗憾我帮不了你,我真的不知道道场是怎么运作的
【讨论】:
【参考方案2】:我找到了一个解决方案,也许它的功能很糟糕:
dojo.addOnUnload(function()
dojo.byId('jstop').click();
);
它随机工作(?)我的意思是,我关闭窗口 10 次,它触发 6。我讨厌这个。
【讨论】:
我认为问题是(可能)延迟时间。单击后添加返回“某物”然后再次检查?以上是关于Javascript/jQuery onbeforeunload HTML 事件麻烦的主要内容,如果未能解决你的问题,请参考以下文章
Javascript / jQuery - 隐藏字段时禁用验证
CodeIgniter 和 Javascript/Jquery 库