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

Javascript 重复警报“;来自网页的消息:null";在IE中,javascript,jquery,Javascript,Jquery,我正在使用下面的jQuery代码启动一个overlay div,它在Chrome和Firefox中运行得非常好——但在IE9中,它会启动一个窗口“您想离开这个页面吗?”并显示“来自网页的消息:null”。在此之后单击的每个链接上都会出现窗口,直到您通过注销结束会话(这是一个基于Codeigniter的应用程序) 如果您能深入了解导致这种情况的原因,我们将不胜感激 编辑:有问题的代码是: window.onbeforeunload=function(){saveFormData();return

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

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

编辑:有问题的代码是:


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

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

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

问题是这样的链接:

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

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

我解决这个问题的方法是做下面的事情(虽然很难看,但效果很好)

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


然而,在一个只有100个和100个链接的“主页”上,这将是非常难看的尝试和实施。-祝你好运。

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

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

window.onbeforeunload = function(){}
如果您想进行快速测试,可以在IE开发者工具的控制台部分尝试

同样,我不确定这将如何影响代码中的内容。因此,如果有任何代码被破坏,请正确测试所有代码。将中断的代码可能与附加到page unload或onbeforeunload事件的任何侦听器相关。就我而言,没有:)


希望有帮助。

您确定此代码导致问题吗?我看不出有什么会导致这种情况。你也可以发布一些标记吗?明白了--添加了js IncludeHanks中的所有代码--我读了另一篇关于onbeforeunload的文章--所以我尝试添加
window.onbeforeunload
=null;对于没有成功的链接,必须有一些逻辑才能抛出确认,对吗?你是对的--有问题的代码在其他地方--只需要找出要更改的内容:
window.onbeforeuload=function(){saveFormData();return false;}
非常感谢。这帮助我修复了IE中的一个类似错误。