【问题标题】:jQuery: Save unload events for later usejQuery:保存卸载事件以备后用
【发布时间】:2011-11-23 22:12:09
【问题描述】:

我想保存一个卸载事件以便稍后执行。例如:

// on unload do nothing but safe the event
jQuery(window).unload(function() {
            // TODO safe the unload event here somehow
            // unloadEvent = this;
            return false;
});

稍后,另一段代码应该可以执行之前保存的事件,例如这样:

function finallyUnload() {
        // TODO
        // unloadEvent.perform();
}

有什么办法吗?

更新

我的浏览器窗口正在与 Java Selenium 应用程序通信,需要等到它收到有关卸载事件及其发生方式的信息。在这种情况下,可以执行卸载事件。

我知道卸载事件不能延迟或停止,所以我有了另一个想法。如何拦截所有对带有 href 和按钮的链接的点击,以及表单的提交。然后我手动将window.location 设置为所需的 URL 或提交表单。这行得通吗?

【问题讨论】:

  • I want to save an unload event to execute it later on。你能定义later on吗?在 unload 事件之后,您的页面上执行的 JavaScript 并不多。嗯,实际上可能有,但不在用户离开的同一页面上。
  • 您不能取消 unload 事件,期间。
  • @Darin:我的浏览器窗口正在与 Java Selenium 应用程序通信,需要等到它收到有关卸载事件及其发生方式的信息。在这种情况下,可以执行卸载事件。
  • @SLaks:我不想取消,我想推迟
  • 你也不能这样做。 return false 不会做任何事情。

标签: java jquery selenium event-handling


【解决方案1】:

我找到了解决方法。我拦截了所有 clicksubmit 事件,并在我的应用程序提取所需的事件数据后将它们保存以供以后使用。

但并非在所有情况下都有效:Intercept JavaScript unload events

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 2018-03-06
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2018-06-23
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多