重复警报“;来自网页的消息:null”;在IE中

Repeating alert "Message from web page: null" in IE

本文关键字:null 消息 IE 网页      更新时间:2023-09-26

我正在使用下面的jQuery代码来启动一个覆盖div,它在Chrome和Firefox中运行得很好——但在IE9中,它会启动一个窗口"你想离开这个页面吗?"并显示"来自网页的消息:null"。在那之后,点击的每个链接都会继续出现窗口,直到你通过注销(这是一个基于Codeigniter的应用程序)结束会话

如果您能深入了解造成这种情况的原因,我们将不胜感激。

编辑:关闭代码为:

window.onbeforeunload=function(){saveFormData();return false;}

我不知道你页面中的确切问题在哪里,但我相信你已经遇到了IEonbeforeunload事件的乐趣。

在Internet Explorer中,它将所有导航链接点击视为"离开"页面,因此,如果您定义了onbeforenload事件,您将收到确认消息(假设您的代码,或者CodeIgnitor框架已附加处理程序)

问题是这样一个链接:

<a href="javascript:doSomething();">Do something on this page without leaving</a>

将触发IE相信用户正在离开页面。

我绕过这件事的方法是做以下事情(虽然很难看,但效果很好)。

在页面"内部"的4-5个链接上的小页面(弹出窗口)中,我添加了一个CSS类:class="internal",然后在onbeforeunload事件中,我会检查触发事件的源元素是否设置了类。。。如果是"忽略"抛出我的"你确定要离开吗?"类型的警告。。。

然而,在一个充斥着100和100个链接的"主页"上,这将是非常丑陋的尝试和实现。-祝你好运。

Scunliffe的回答帮助我以以下方式解决了这个问题-

在我所有JavaScript代码的末尾添加了以下一行。

window.onbeforeunload = function(){}

如果想进行快速测试,可以在IE开发者工具的控制台部分尝试。

同样,我不确定这将如何影响代码中的内容。因此,如果出现任何问题,请正确测试所有代码。将中断的代码可能与附加到页面卸载或onbeforeunload事件的任何侦听器有关。就我而言,没有:)

希望能有所帮助。