在Chrome浏览器中,window.onunload无法正常工作。 任何人都可以帮助我吗?
我已经写了这个代码
function winUnload() { alert("Unload Window"); MyMethod(); } window.onunload = function() { winUnload(); }
此代码在IE和Firefox中正常工作。 但是这个代码在Chrome中不起作用。 这两个语句alert("Unload Window");
和MyMethod();
不工作。
在卸载事件中有一些行为在chrome中不起作用。 警报或确认框是这样的事情。
但什么是可能的(AFAIK):
- 打开popup窗口(使用window.open) – 但这只会工作,如果popup窗口阻止程序被禁用您的网站
- 返回一个简单的string(在beforeunload事件中),这会触发一个确认框,询问用户是否要离开页面。
#2示例:
$(window).on('beforeunload', function() { return 'Your own message goes here...'; });
演示: http : //jsfiddle.net/PQz5k/
我知道这是旧的,但我find了使用Chrome卸载工作的方式
window.onbeforeunload = function () { myFunction(); };
阿明的回答非常有用,谢谢。 当尝试设置在大多数浏览器中工作的卸载事件时,#2是最重要的知识:不能alert()或confirm(),但返回一个string将生成一个确认模式。
但是,我发现,即使只是返回一个string,我也有一些特定于Mootools的跨浏览器问题(在这个例子中使用版本1.4.5)。 这个Mootools特定的实现在Firefox中运行的很好,但没有导致在Chrome或Safari中确认popup窗口:
window.addEvent("beforeunload", function() { return "Are you sure you want to leave this page?"; });
所以为了让我的onbeforeonload事件跨浏览器工作,我不得不使用JavaScript本地调用:
window.onbeforeunload = function() { return "Are you sure you want to leave this page?"; }
不知道为什么会出现这种情况,或者在更高版本的Mootools中已经修复。
请尝试window.onbeforeunload而不是window.onunload的铬。 你也可以尝试从body>标签中调用onbeforeunload ,这个标签可以在chrome中工作。
但是,我们在chrome浏览器中的卸载function确实有问题。 请检查
在通过body / window卸载事件调用时,location.href在chrome中不起作用
谢谢,Nived
您可以尝试使用Chrome and Safari
页面隐藏事件。
检查这些链接:
如何检测浏览器对pageShow和pageHide的支持?
http://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/
如果onload事件没有触发,onunload事件将不会触发。 不幸的是, onload事件等待所有的二进制内容 (例如图像)加载,而内联脚本在 onload事件触发之前运行 。 在onload执行之前,当页面可见时触发DOMContentLoaded 。 它现在是HTML 5中的标准 ,您可以testing浏览器支持,但注意这需要<!DOCTYPE html>
(至less在Chrome中)。 但是,我找不到卸载DOM的相应事件。 而这样的假设事件可能无法正常工作,因为一些浏览器可能会保持DOM执行“恢复标签”function。
我发现的唯一可能的解决scheme是页面可见性API ,它似乎需要<!DOCTYPE html>
。
你的代码在这里亲爱的
<script> var unloadEvent = function (e) { var confirmationMessage = "Warning: Leaving this page will result in any unsaved data being lost. Are you sure you wish to continue?"; (e || window.event).returnValue = confirmationMessage; //Gecko + IE return confirmationMessage; //Webkit, Safari, Chrome etc. }; window.addEventListener("beforeunload", unloadEvent); </script>
感谢和欢呼