gpt4 book ai didi

javascript - 关于 jQuery 中 window.unload 的一些(奇怪?)问题

转载 作者:行者123 更新时间:2023-12-02 19:30:46 25 4
gpt4 key购买 nike

我正在使用以下代码(纯粹用于测试目的):

$(window).bind('unload', function() {alert('unload!')});
$(window).unload(function () {alert(".unload()")});

我有两个问题:

  1. 为什么它有效——即为什么我会看到两条消息?我在某处读到,将两个事件监听器附加到同一个 DOM 对象没有效果;第二个及更多监听器将被忽略。

  2. 为什么 Firefox 在一个标准的、类似系统的消息框中显示这两条消息,而在使用页面过程中触发的所有其他消息(也包括警报)总是显示在这个丑陋的、无标题的、烦人的、类似消息框的东西?

  3. 正如我在 this question 的评论中所写的那样,您真的认为在 unload (通过 Chrome/WebKit)中阻止 alert() 是个好主意吗?用 console.log 替换警报(如建议的那样)不会给你带来太多有用的效果,因为在刷新页面或导航到另一页面后,控制台(至少在 Chrome 中)会被清除。您可以看到在消息实际消失之前几毫秒写入的消息痕迹,所以我宁愿发现它毫无用处。禁用卸载警报并不是最好的主意。很难进行一些严肃的测试,并且“糟糕”的页面可以通过显示自己的“烦人”消息而不使用警报(jQuery UI、某些 div 等)来轻松解决问题。

这些问题纯粹是为了满足我想知道所有答案的渴望! :] 所以,不要认真对待它(比如做一些额外的测试、摆弄示例等)。只需写下您对此的了解或感受即可。

最佳答案

为同一个事件(使用 jQuery)绑定(bind)多个事件处理程序肯定会导致两者都被触发。您可能正在考虑对“onfoo”元素属性进行连续赋值,但这不是 jQuery(或我所知道的任何其他现代框架)内部使用的机制。

浏览器会根据需要显示 alert() 消息。它不受页面上代码的控制。

最后,在“unload”事件处理程序中禁止 alert() 对于用户来说是个好主意。您可以控制调试控制台是否在页面加载期间清除。

关于javascript - 关于 jQuery 中 window.unload 的一些(奇怪?)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11524872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com