gpt4 book ai didi

javascript - Javascript 在 IE8 中关闭窗口

转载 作者:行者123 更新时间:2023-12-04 01:23:32 25 4
gpt4 key购买 nike

我实现了一些浏览器关闭时的功能。

window.onbeforeunload = function (evt) {

evt = (evt)? evt:event;
clickY = evt.clientY;
altKey = evt.altKey;
keyCode = evt.keyCode;

if (altKey == true && keyCode == 0){
//Make call to the server to clear the cache
}else if(clickY < 0){
//Make a call to the server to clear the cache
}else {
return;
}
};

现在上面代码中的问题是,每当我通过单击地址栏按回车键或使用刷新按钮刷新页面时,我的代码都会给我警报(“21112”),我不想要它,因为调用会触发仅当浏览器关闭时。那么有人可以帮助我实现这一目标。

最佳答案

window.onbeforeunload事件是在您的页面是 unload 之前调用编辑。没有方法可以检查它是刷新事件还是浏览器窗口关闭事件。

它在不同的场景下触发 MSDN :

  • 关闭当前窗口。
  • 通过输入新地址或选择收藏夹导航到另一个位置。
  • 单击指向另一个文档的 anchor 。
  • 调用anchor.click方法。
  • 调用document.write方法。
  • 调用document.close 方法。
  • 调用window.close方法。
  • 调用 window.navigate 或 NavigateAndFind 方法。
  • 调用location.replace方法。
  • 调用location.reload方法。
  • location.href 属性指定一个新值。
  • 通过 INPUT type=submit 控件将表单提交到 ACTION 属性中指定的地址,或调用 form.submit 方法。
  • 调用 window.open 方法,为窗口名称提供可能的值 _self
  • 调用document.open方法。
  • 单击“后退”、“前进”、“刷新”或“主页”按钮。

而你无法处理这个。

另请注意,window.onbeforeunload 事件应该通知用户他离开了页面,处理函数应该返回 字符串值,该值将包含在确认弹出窗口中(Firefox 4+ 参见 bug )。

你不能强制用户留在页面上。

注意:您可以使用 onbeforeunload 做的唯一事情就是通知用户他将离开您的页面(这是因为一些恶意页面可以打开其他页面等等...和垃圾邮件用户。这是安全限制)。

如果你想在窗口卸载之前进行 AJAX 调用,你需要使用 onunload 事件。请注意,您的 AJAX 调用必须同步。异步调用将不起作用。

关于javascript - Javascript 在 IE8 中关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598070/

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