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