简体   繁体   中英

How to prevent javascript inside firefox from closing a window/tab?

I am debugging a website using firebug. The website opens a window, performs some operations and than closes it. This causes me to lose all of the firebug net history. Is there any way to prevent javastript from closing the window after its done, except changing the code?

You can rewrite the open method, which adds a beforeunload event. Have a look at the annotated code + bookmarklet below:

Code:

javascript:(function(w){
    var o = w.open;       /* Stores original `window.open` method */
    w.open = function() { /* Catches all window.open calls*/
        var x = o.apply(w, arguments); /* Calls original window.open */
        /* Bind beforeunload event */
        x.addEventListener('beforeunload',function(e){e.preventDefault()},true);
        return x;
    }
})(window);

Bookmarklet:

javascript:(function(w){var o=w.open;w.open=function(){var x=o.apply(w,arguments);x.addEventListener('beforeunload',function(e){e.preventDefault()},true);return x;}})(window);

I haven't tried to use it, but there's a settings in FF which supposedly lets you do what you wish.

Type about:config in the url bar and press enter. After a warning you'll see the list of config options. Search for dom.allow_scripts_to_close_windows and set its value to false.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM