我正在撰写此页面:http://www.weloveflyers.co.uk/order.php
有人输入订单详情后点击“让我们走!”捕获订单信息,显示供他们检查,然后“立即付款!”按钮出现在底部(尝试它,你不需要支付任何东西,只是这样你就可以看到我的意思)
我不想在他们点击Let's Go按钮之前阻止任何人离开页面,但是如果他们已经点击了“Let's Go!” (即下订单)但尚未点击“立即付款!”我希望能够与他们核实“你真的想离开吗?如果你没有付款就离开,你的订单将被取消!”
在进入确定它仅在订单已经放置时起作用的复杂性之前,我尝试了一个非常基本的onbeforeunload设置,只是为了看看浏览器是否支持它。我似乎在Safari中偶尔支持这个功能,通常它不起作用,但偶尔也会这样,而在Chrome中它根本不起作用。
任何人都可以提供任何帮助或建议,我们将非常感激!
谢谢,
菲尔
P.S。对于您的信息,我暂时从实时页面中删除了所有onbeforeunload功能,因为我不想惹恼访问者,直到我做对了,它完全符合我的要求。
更新:这是最新的尝试:
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit() {
if (needToConfirm)
return "Message";
};
答案 0 :(得分:6)
根据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?