- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我还没有看到 David Flanagan 的《JavaScript - 权威指南》一书(我也在 O'Reilly Answers 上问过这个问题)或其他任何地方提到过这一点,但我发现除非文档完全加载,否则不会调用 window.onunload,这非常烦人!至少对于 IE8 和 Chrome 3 来说是这样的
我有一段 Javascript 我想添加到网页底部。如果用户碰巧在页面加载之前单击关闭页面(^ 见下文),并且在我的 Javascript 有机会运行之前,我希望将其捕获在 onunload 中。但这是不可能的,因为 onunload 事件处理程序仅在文档完全加载时才会被调用。如果我无法使用 onunload,是否可以使用其他方法来实现相同的目的?
^“Javascript - 权威指南”建议在页面加载之前用户无法与页面进行交互。我相信这是错误的。书上是这么说的:
“Javascript执行模型中的另一个灰色地带是在文档完全加载之前是否可以调用事件处理程序的问题。到目前为止,我们对Javascript执行模型的讨论得出的结论是所有事件处理程序总是被触发所有脚本执行完毕后。虽然这种情况通常会发生,但任何标准都不需要这样做。如果文档很长或通过慢速网络连接加载,浏览器可能会部分呈现文档并允许用户开始交互在所有脚本和 onload 处理程序运行之前使用它(并触发事件处理程序)。如果这样的事件处理程序调用尚未定义的函数,它将失败。(这是在脚本中定义所有函数的原因之一)文档。)并且如果这样的事件处理程序尝试操作尚未解析的文档部分,它将失败。这种情况在实践中并不常见,并且通常不值得花费额外的编码精力来积极防范它。”(第 5 版,第 256 页)
我在 IE8 上进行了测试,结果表明可以在页面加载的任何阶段与页面交互(并通过 anchor 链接离开)。
感谢您的帮助,保罗
最佳答案
对我来说,在解析文档之前 onunload 事件无法触发,这是有道理的。文档解析和脚本执行通常在同一个线程上运行,如果用户要离开页面,则在触发 onunload 事件后线程将被取消。由于解析是在用户离开页面时使用线程,因此浏览器将具有以下选项:
也许你可以看看 onbeforeunload事件被解雇?但我认为这不会有什么不同。我认为最好的办法是寻找优化页面以加快加载速度的方法。
关于JavaScript onunload 仅在文档完全加载时调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2192565/
我已阅读问题的答案 window.onload vs .在那次问答中,许多人声称 window.onload 和 body.onload 是相同的。这不是我的经历。 考虑两个测试页面:
我的 onunload 事件测试脚本有问题它必须仅在窗口 onunload 上触发但它也会在负载下点火..为什么?有什么不对劲,我不知道是什么。。请帮忙 这是html代码 Untitled D
我想触发 onunload 事件来执行一些清理操作,我有多个选项卡(导航栏)显示指向不同网页的多个链接,我的问题是,即使我在其他页面中,我的卸载功能也位于其他一些jsp 的标签被触发。请帮助解决这个问
我刚刚遇到的问题得到了帮助 here . var win = window.open(url, name); win.onunload = StartLoad; win.close(); 为了彻底解决
根据文档(我只使用 Firefox): https://developer.mozilla.org/en/DOM/window.onunload The unload event is raised
我正在开发一个具有 DNS 记录管理器的虚拟主机面板。我必须使用大量 JavaScript 才能使它的性能几乎像桌面应用程序。 我真的很想在浏览器运行 beforeunload 时显示自定义对话框窗口
我写了一些代码,在离开页面之前会要求确认。如果我说"is"离开页面,则需要进行一些清理。现在的问题是 onunload 方法在页面刷新时执行,但在页面关闭时不执行,为什么? 代码: function
我是一个初学者,我在 javascript 文件上经常看到这行代码,例如: window.onunload=function(){}; 我什么时候应该使用这个,它到底有什么作用? 谢谢。 最佳答案 当
我还没有看到 David Flanagan 的《JavaScript - 权威指南》一书(我也在 O'Reilly Answers 上问过这个问题)或其他任何地方提到过这一点,但我发现除非文档完全加载
在 onunload、onbeforeunload 方面遇到问题。当用户离开页面或浏览器关闭时,我需要执行一些代码。 onunload 适用于导航离开,但在浏览器关闭时不起作用。我无法使用onbefo
当用户使用 离开网站时是否可以捕获一些不同类型的操作 $(window).unload(function(){ doSomething(); } 我想将它们分为两种不同的类型。第一个是用户关闭
我无法获取 JavaScript 代码。正在观看 JavaScript 教程,所以我自己测试了它。我去阅读了一下,一些消息来源说它在 Chrome 中不起作用,所以我用 Firefox 进行了测试。然
我想用类似的东西存储一个 cookie Response.Cookies.Set(new HttpCookie("name","value"); 在我完成页面生命周期之后,将它放在 OnUnload(
我想在页面刷新或用户退出页面时将一些信息存储在浏览器的本地存储中以供将来使用。我想我应该使用一些 JavaScript 来检测事件并存储页面访问的状态。 现在我的困境是:我应该使用 Onbeforeu
考虑以下代码: $(window).unload(function () { console.log('foo'); }); 如果我通过导航到不同的 URL 来触发卸载事件,则在浏览器开始获得
我在 window.onunload 事件上使用确认对话框。但是当我单击取消按钮时,它会将我导航到另一个页面,但我想留在那个页面上。这是 window.onunload 事件的问题吗?请给我这个问题的
我正在尝试向表单添加一个监听器,以便在用户离开表单时进行 ajax 调用,但似乎什么也没有发生。当我离开告诉我代码不正确的页面时,在 firefox 中看不到任何错误并且没有任何控制台记录。 jque
我正在为 onbeforeunload、onunload 和在正确的时间生成正确的消息而苦苦挣扎。欢迎任何想法。情况是这样的: 当我使用 onbeforeunload 时,用户会收到一条消息以选择是否
我有一个要求,当用户点击浏览器的[X]按钮时,我应该给他们一个消息。 我使用 JavaScript 的 onUnload 方法完成了这个任务。 现在,即使我刷新页面,也会出现相同的消息! 为什么会这样
我最近接手了一个项目,该项目使用 COMET 执行一些协作工作并处理一个简单的聊天室。最初编写这个东西的人在 STOMP 和 Oribited 之上编写了一些类来处理所有实际的聊天、消息传递和日志记录
我是一名优秀的程序员,十分优秀!