[英]JavaScript alert before closing the tab
这是我的JavaScript代码:
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any unsaved work is going to loose!';
}
// For Safari
return 'Any unsaved work is going to loose!';
};
当我尝试关闭选项卡时,此代码非常有效。 但问题是,即使我尝试导航到我网站的另一个页面,它也会提醒。
当且仅当用户尝试关闭选项卡时,可能只显示警报的通用JS代码是什么?
不幸的是,javascript中没有纯粹的“关闭”事件。 onunload & onbeforeunload是你能做的最好的事情。
副作用是在导航和后退浏览器按钮上触发这些事件。 您可以尝试使用(e.clientY <0)条件来过滤页面上的导航。
然后检查window.location是否已更改。
window.onbeforeunload = function (e) {
if (document.location.href.indexOf('?x=hostname') > -1) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any unsaved work is going to loose!';
}
// For Safari
return 'Any unsaved work is going to loose!';
}
};
如果您认为e.target很好,那就找出e.target
if (e.target != myATagsOrButtons){
....插入你的代码
另外一件事是你可以将if isWorking变量设置为true,如果他们已经在表单中输入了东西,那么如果他们在表单中输入了东西,那么无论如何导航都可能对他们不利。
<input type='text' onkeydown='isUpdating()'>
然后检查以确保更新。
为什么不尝试添加一个条件来检查用户是否正在远离域导航,如果是,则发出警报
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e && window.location.indexOf("www.mysite.com") > -1) {
e.returnValue = 'Any unsaved work is going to loose!';
}
// For Safari
return 'Any unsaved work is going to loose!';
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.