我正在使用下面的jQuery代码启动一个覆盖div,它在Chrome和火狐中运行得很好--但在IE9中它会启动一个窗口“你想离开这个页面吗?”并且还说“来自网页的消息:空”。之后点击的每一个链接都会继续弹出窗口,直到你注销结束会话(这是一个基于Codeigniter的应用程序)
任何关于可能导致这种情况的洞察力都将不胜感激。
编辑:违规代码为:
window.onbeforeunload = function() { saveFormData();return false;}
发布于 2012-03-31 04:45:11
我不知道您的页面中的确切问题在哪里,但我相信您已经遇到了IE和onbeforeunload事件的乐趣。
在Internet Explorer中,它将所有导航链接点击视为“离开”页面,因此,如果您定义了onbeforeunload事件,您将获得确认消息(假定您的代码,或者CodeIgnitor框架附加了一个处理程序)。
问题是,像这样的链接:
<a href="javascript:doSomething();">Do something on this page without leaving</a>将触发IE相信用户正在离开页面。
我解决这个问题的方法是这样做的(虽然很难看,但很管用)。
在我的小页面(一个弹出窗口)中,在页面的4-5个“内部”链接上,我添加了一个CSS类:class="internal",然后在我的onbeforeunload事件中,我将检查触发该事件的源元素是否设置了类...如果是这样,“忽略”我的“你确定要离开吗?”键入警告...
然而,在一个“主”页面上有零星的100个和100个链接,这将是非常丑陋的尝试和实现。-祝你好运。
发布于 2013-11-22 17:20:59
Scunliffe的回答帮助我通过以下方式解决了这个问题-
在我所有JavaScript代码的末尾添加了下面这行代码。
window.onbeforeunload = function(){}如果想要快速测试,可以在IE开发人员工具的控制台部分进行尝试。
同样,我不确定这将如何影响您代码中的内容。因此,如果有任何东西损坏,一定要正确地测试所有代码。将中断的代码可能与附加到页面unload或onbeforeunload事件的任何侦听器相关。在我的例子中,没有任何:)
希望能有所帮助。
https://stackoverflow.com/questions/9949982
复制相似问题