【发布时间】:2012-07-17 14:36:04
【问题描述】:
我正在使用以下代码(纯粹用于测试目的):
$(window).bind('unload', function() {alert('unload!')});
$(window).unload(function () {alert(".unload()")});
我有两个问题:
-
为什么它会起作用 - 即为什么我会看到两条消息?我在某处读到将两个事件侦听器附加到同一个 DOM 对象没有效果;第二个和更多的听众被忽略。
-
为什么 Firefox 在一个标准的、类似系统的消息框中显示这两条消息,而在使用页面的过程中触发的所有其他消息(也包括警报)总是显示在这个丑陋、无标题、烦人的消息中- 类似盒子的东西?
-
正如我在对this question 的评论中所写的那样,您真的认为在
unload中阻止alert()(通过Chrome / WebKit)是个好主意吗?用 console.log 替换警报(如那里所建议的那样)不会给您带来太多有用的效果,因为在您刷新页面或导航到另一个页面之后,控制台(至少在 Chrome 中)正在被清除。您可以在它们真正消失之前的几毫秒内看到写入控制台的消息痕迹,所以我宁愿觉得它没用。在卸载时禁用警报并不是最好的主意。很难进行一些严肃的测试,“糟糕”的页面可以通过显示自己的“烦人”消息而不使用警报(jQuery UI、某些 div 等)来轻松解决问题。
这些问题纯粹是为了满足我想知道所有答案的渴望! :] 所以,不要认真对待它(比如做一些额外的测试,小提琴例子等)。只是,写下你对此的了解或感受。
【问题讨论】:
标签: javascript jquery google-chrome firefox jquery-events