我有这部分代码适用于除<ul class="nav">
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About us</a></li>
</ul>
以外的所有浏览器(iOS和OSX)
问题是Safari会触发Safari 10.*
,但它不会显示在确认消息
beforeunload event
从控制台显示再见消息,因此在Safari上触发了事件,但未显示确认消息(也尝试function goodbye(e) {
console.log("goodbye");
en = false;
e = e || window.event;
e.cancelBubble = true;
e.returnValue = msg;
if (!en) {
e.preventDefault();
if(e.stopPropagation)
e.stopPropagation();
return e.returnValue;
}
}
jQuery(window).bind("beforeunload", goodbye);
而不是return confirm(msg);
)。花了很多时间在这上面,并且在这里看到了很多关于SO的问题,但似乎没有人有一个可行的解决方案。
修改
这里发生了一些奇怪的事情。如果我加载页面并刷新一次,则会显示消息,然后如果我让页面单击“离开”按钮并在同一窗口选项卡上重新刷新,则消息不会出现。