繁体   English   中英

onbeforeunload在Safari或Chrome中似乎不起作用

[英]onbeforeunload doesn't seem to work in Safari or Chrome

我正在此页面上工作: http : //www.weloveflyers.co.uk/order.php

输入某人的订单详细信息后,单击“ Let's Go!”。 捕获订单信息,显示给他们检查,然后显示“立即付款!” 按钮显示在底部(尝试一下,您不必支付任何费用,只是您可以了解我的意思)

我不想阻止任何人在单击“ Let's Go”按钮之前离开页面,但是如果他们已经单击“ Let's Go!”, (即下订单),但尚未点击“立即付款!” 我希望能够与他们核对“您真的要离开吗?如果您不付钱就离开,您的订单将被取消!”

在确保仅在下达订单后才起作用的麻烦之前,我尝试了一个非常基本的onbeforeunload设置,只是看浏览器是否支持它。 我似乎在Safari中偶尔获得了对该功能的支持,通常它不起作用,但偶尔也可以,在Chrome中根本不起作用。

任何人都可以提供的任何帮助或建议将不胜感激!

谢谢,

菲尔

PS对于您的信息,我暂时已从实时页面中删除了所有onbeforeunload功能,因为在我想对它并使其完全符合我的要求之前,我不希望使访问者烦恼。

更新 :这是最新的尝试:

var needToConfirm = true; 
window.onbeforeunload = confirmExit; 
function confirmExit() {
  if (needToConfirm) 
    return "Message";
}; 

根据MDN文档 ,我只是在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?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM