on Safari浏览器不显示确认信息

我有这部分的代码适用于除Safari 10.*以外的所有浏览器Safari 10.* (iOS和OSX)

问题在于Safari会触发beforeunload event但不会显示在确认消息中

 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); 

再见消息从控制台显示,所以在Safari上触发事件,但不显示确认消息(也试图return confirm(msg);而不是return e.returnValue; )。 花了很多的时间,并在这里看到了很多的问题,但没有人似乎有一个工作的解决scheme。

编辑

这里发生了一些奇怪的事情。 如果我加载页面并刷新一次,则显示消息,如果我离开页面,单击“离开”button并在同一个窗口选项卡上重新刷新它,消息不会出现。