【问题标题】:Javascript/jQuery onbeforeunload HTML Event troubleJavascript/jQuery onbeforeunload HTML 事件麻烦
【发布时间】: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 例程已被执行。
  • 谢谢哥们。我只是对记事本执行感到好奇。我不确定我是否是合适的人选。祝你的问题一切顺利。

标签: javascript jquery events triggers dojo


【解决方案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。我讨厌这个。

    【讨论】:

    • 我认为问题是(可能)延迟时间。单击后添加返回“某物”然后再次检查?
    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 2022-12-18
    • 1970-01-01
    • 2015-10-12
    • 2016-01-22
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多