编程语言
首页 > 编程语言> > javascript – onbeforeunload似乎无法在Safari或Chrome中运行

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