问题标签 [onbeforeunload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1376 浏览

javascript - 如何在页面卸载时可靠地跨域和跨浏览器发送请求

我有 3rd 方加载的 javascript 代码。javascript 跟踪许多指标,当用户退出页面时,我想将指标发送回我的服务器。

由于某些浏览器(如 IE)中的 XSS 检查,我无法进行简单的 jquery.ajax() 调用。相反,我使用 jquery 将图像 src 附加到页面。以下是浏览器的代码:

如果我使用 window.onbeforeunload,FF 会中止对“test_url”的请求,并且 IE8 不适用于 jquery 的 unload()。如果任意 test_url 设置代码太长,IE8 也无法工作,尽管如果立即将 IE8 附加到 DOM,IE8 似乎工作正常。

有没有更好的方法来解决这个问题?不幸的是,当用户离开页面时,这确实需要执行。

0 投票
2 回答
1391 浏览

javascript - 从 window.onbeforeunload 中排除 DIV 内的点击

给定以下功能:

如果用户单击带有 ID 的 div 中的链接,我想要一种方法来排除此函数的运行:

有任何想法吗?

** 更新原来是该网站搜索的以下代码导致了问题。但为什么?

0 投票
1 回答
2372 浏览

javascript - 如何在适当的时候显示 onbeforeunload 对话框?

我的网页上有一个 javascript 编辑器,我想问用户他/她是否想离开页面,即使有未保存的更改。

我知道我可以通过这种方式将自定义消息添加到“onbeforeunload 对话框”:

( Source ) 但我只想在确实有一些未保存的更改时才显示对话框。怎么做?

谢谢!

0 投票
3 回答
4378 浏览

javascript - 无论如何,在使用 Internet Explorer 时是否可以防止触发 onbeforeunload 事件

我有一个假设在用户关闭浏览器时触发的函数,并且我已将代码放入window.onbeforeunload函数中。

问题是每次如果我在 Internet Explorer 中重新加载页面,该onbeforeunload事件也会触发,这是一个问题,因为我只希望它仅在用户关闭或导航离开当前页面时触发,而不是在页面刷新/重新加载时触发.

因此,我不确定是否onbeforeunload打算在页面刷新/重新加载时触发,如果是这样,那么还有另一种解决方法吗?

0 投票
1 回答
8288 浏览

javascript - 多个 onbeforeunload() 和 onunload() 事件

我有一个来自客户的奇怪问题,我们的代码包括用于onbeforeunload()触发对话的代码,但它们还包括另一个公司代码,该代码也绑定了此事件处理程序。

两者可以同时执行吗?

我一直在阅读这篇文章, http: //oreilly.com/catalog/9780596101992 “JavaScript:权威指南,第五版”,试图帮助更好地理解浏览器内部和 Javascript 堆栈中发生的事情,但事实证明它相当头脑弯曲。

我通过阅读本书了解到,如果使用 Level 2 API 附加某些事件,则可以同时执行它们,addEventListener()但顺序将取决于浏览器。然而,没有提及该onbeforeunload()事件。只是onunload().

这将我引向问题的第二部分。如果一个事件被触发,onbeforeunload()我是否认为除非它返回 true,onunload()否则永远不会调用?

如果有人可以对此有所了解,或者为我提供一个很好的教程/指南,关于将多个事件处理程序分配给同一事件,或者特别是这两个事件,这将是王牌。

0 投票
3 回答
1384 浏览

javascript - 使用哪个事件处理程序来记录离开页面 - onunload 或 onbeforeunload?

对我之前关于使用 javascript 测量翻页时间的问题没有任何答案,我将开始编写自己的代码(!)。

为了测量它所花费的时间,我建议在用户浏览离开页面时删除一个包含时间戳的 cookie,然后在后续页面中,将该时间与“现在”进行比较,并将请求发送回一个 URL,该 URL将记录间隔。

似乎有 2 个可能的处理程序我可以将第一个代码块与 - onunload() 处理程序或 onbeforeunload() 相关联?

更重要的是,它在对处理程序没有/损坏的支持的浏览器上静默失败,而不是在所有可能的浏览器中可移植。

任何指针?明白了吗?

TIA

C。

0 投票
1 回答
1400 浏览

javascript - 是否可以使用“确认”在同一窗口中打开新网址?

我正在使用 Confirmit Java 脚本函数重定向到具有肯定响应的新 url。它并不能完全满足我的需求——也许我不能完全拥有我想要的东西。

这就是它的作用- onunload,如果得到积极响应,它会在新窗口中打开新的 url,它可以在用户不知道的情况下被弹出窗口阻止程序阻止,给人一种什么都没有发生的印象。当它确实打开新 URL 时,它会在一个新窗口中打开,从而使桌面变得拥挤。它只是不是一个很好的解决方案。

我想要它做什么- onunload 我希望它在同一个窗口中打开新的 url,并且它不会被归类为要被阻止的“弹出窗口”。我尝试切换到onbeforeunload .... nuthin。

有简单的解决方案吗?

这是我当前的代码:

0 投票
3 回答
1210 浏览

javascript - Safari 中的 onbeforeunload 不运行代码服务器端

在浏览器关闭或 F5 上,我必须在服务器端执行一些代码为此我有一个按钮。单击具有编写 onclientclick 和 onclick 功能的按钮。我还在 window.onbeforeunload 上写了一个事件,它执行 button.click()。

我的问题是这会运行按钮的客户端单击功能的代码,但是服务器端代码不会被执行。仅当我关闭浏览器时才会发生这种情况。当我做 F5 时,它工作得很好。这也只发生在 Safari 上。在 FF 和 mozila 中它完美地工作。我怎样才能

0 投票
2 回答
459 浏览

javascript - 无法将成功标志添加到 onbeforeunload

onbeforeunload 有问题。我有一个通过 jquery 向导插件分成几段的长表单。如果您在任何步骤中回击、刷新、关闭等,我需要弹出一个确认对话框,但需要它在单击提交按钮时不弹出确认对话框。有它的工作,或者至少我认为,它现在没有。

'Register' 是提交按钮 ID。请帮忙!

0 投票
3 回答
6077 浏览

javascript - Javascript onbeforeunload 问题

我对以下代码有疑问。发生的情况是当用户关闭浏览器时,它应该提示他们单击“确定”或单击“取消”以离开页面。单击“确定”将触发window.location重定向到另一个页面以进行用户跟踪(是的,为了避免激战,有一个辅助系统来确保准确跟踪,以防用户从任务管理器中杀死浏览器(如前所述在类似的问题中))。CANCEL 将保留在页面上,问题是无论您点击什么按钮,您都会被重定向,就好像您想离开页面一样。相关代码如下。