首页 > 技术文章 > 监控浏览器关闭事件

c-and-unity 2016-07-23 17:59 原文

var UnloadConfirm = {};

UnloadConfirm.MSG_UNLOAD = "数据尚未保存,离开后可能会导致数据丢失\n\n您确定要离开吗?";

UnloadConfirm.set = function(a) {

    window.onbeforeunload = function(b) {

        b = b || window.event;

        b.returnValue = a;

        return a

    }

};

UnloadConfirm.clear = function() {

    fckDraft.delDraftById();

    window.onbeforeunload = function() {

    }

};

UnloadConfirm.set(UnloadConfirm.MSG_UNLOAD);

关于 IE firefox Chrome下的通过用js 关闭窗口的一些问题

首先IE是可以通过window.close()来关闭浏览器窗口的,但是在firefox和Chrome下是无效的,原因在于:

Firefox下默认设置是无法通过脚本来关闭浏览器窗口的,为的是防止恶意脚本注入,

所以调整的方式就是在url地址栏中输入about:config,

然后在配置列表中找到 dom.allow_scripts_to_close_windows 
点右键的选切换把上面的false修改为true即可。 默认是false

 

chrome下的默认是不支持这种关闭方式的,但是也可以通过一些特殊的手段进行关闭:

window.opener=null;
window.open('','_self');
window.close();

创建窗口父元素无,同时将窗口指向自身,同时关闭自身,最后才可以关闭,其实有点类似与用脚本打开了当前页面,再用脚本关闭当前页面,而这种方式在W3C中是被认同的!

推荐阅读