javascript – onbeforeunload似乎无法在Safari或Chrome中运行
作者:互联网
我正在写这个页面:http://www.weloveflyers.co.uk/order.php
有人输入订单详情后,点击“让我们去!”捕获订单信息,显示供他们检查,然后“立即付款!”按钮出现在底部(尝试它,你不需要支付任何东西,只是这样你就可以看到我的意思)
在点击Let’s Go按钮之前,我不想阻止任何人离开页面,但是如果他们已经点击了“让我们去!” (即下订单)但尚未点击“立即付款!”我希望能够和他们一起检查“你真的想离开吗?如果你没有付款就离开,你的订单将被取消!”
在我确定它只在已经下订单时起作用的复杂性之前,我尝试了一个非常基本的onbeforeunload设置,只是为了看看浏览器是否支持它.我似乎在Safari中偶尔支持这个功能,通常它不起作用,但偶尔也会这样,而在Chrome中它根本不起作用.
任何人可以提供的任何帮助或建议将非常感激!
谢谢,
菲尔
附:对于您的信息,我暂时从实时页面中删除了所有onbeforeunload功能,因为我不想惹恼访问者,直到我做对了,它完全符合我的要求.
更新:这是最新的尝试:
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit() {
if (needToConfirm)
return "Message";
};
解决方法:
根据MDN documentation,我在Chrome 11(和13)以及OS X上的Safari 5和Windows 7上的Chrome 14中尝试了以下操作,它对我来说很好(就像上面的代码一样!):
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any string';
}
// For Safari
return 'Any string';
};
如果您在页面中使用上述代码会发生什么情况呢?
您使用的是哪些版本的Chrome和Safari?
标签:javascript,google-chrome,safari,onbeforeunload 来源: https://codeday.me/bug/20190518/1127567.html