我正在处理此页面:http://www.weloveflyers.co.uk/order.php
在有人输入他们的订单详细信息后,点击“开始吧!”订单信息被捕获,显示给他们检查,然后是“立即付款!”按钮出现在底部(试试吧,你不需要支付任何费用,只是为了让你明白我的意思)
我不想阻止任何人在点击“开始吧”按钮之前离开页面,但如果他们已经点击了“开始吧!” (即下订单)但尚未点击“立即付款!”我希望能够与他们确认“您真的要离开吗?如果您不付款就离开,您的订单将被取消!”
在我进入确保它仅在已下订单时才起作用的复杂问题之前,我尝试了一个非常基本的 onbeforeunload 设置,只是为了看看浏览器是否支持它。我似乎在 Safari 中得到了对这个功能的零星支持,通常它不起作用,但偶尔会起作用,而在 Chrome 中它根本不起作用。
任何人都可以提供任何帮助或建议,我们将不胜感激!
谢谢,
菲尔
附言供您引用,我现在已经从实时页面中删除了所有 onbeforeunload 功能,因为在我做对并且它完全符合我的要求之前,我不想惹恼访问者。
更新:这是最新的尝试:
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit() {
if (needToConfirm)
return "Message";
};
最佳答案
根据 MDN documentation ,我刚刚在 OS X 上的 Chrome 11(和 13)和 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 - onbeforeunload 在 Safari 或 Chrome 中似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853400/