在javascript中处理IE窗口关闭事件

时间:2011-04-20 11:39:31

标签: javascript jquery html internet-explorer


当Internet Explorer(6,8和9)窗口关闭时,我需要处理,以便询问他的确认。我尝试了unbeforeunload,但是,正如您可能知道的那样,当点击任何链接时,它也会触发,o表单被提交。有人可以说使用事件鼠标坐标,但有几种方法可以打破这种验证(例如Alt + F4)。还有一种方法可以在单击链接时将某个变量设置为true,并检查是否在事件中,但这两者都不起作用,因为我在页面上有很多不同的链接,并且在某些情况下会多次触发事件。登记/> 此外,我尝试使用框架来解决问题,例如:制作2帧,将我的页面放到一个帧,然后放到另一个(零大小)放置一个带有onbeforeunload处理程序的页面。这样可以正常工作,但我们使用一组环境j,我们无法阻止下载,这些脚本删除页面上的任何帧,将整个页面放在主窗口中 - 失败...
请有人提出其他建议吗?

1 个答案:

答案 0 :(得分:0)

如果您打算使用onbeforeunload(听起来不错),您应该设置一个标志,以便该事件只会让您不知道是否有理由留在页面上。

var hasChanges = false;

window.onbeforeunload = function() {

    if (hasChanges) {

        return "You have changes that will be lost if you continue leaving the page";

    };

};

然后你必须将变量设置为true(hasChanges = true),如果有理由留在页面上...所以如果没有任何变化,单击其他链接将不会触发对话框。 / p>