admin管理员组

文章数量:1336401

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?

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?

Share asked Feb 26, 2012 at 14:10 Arsen ZahrayArsen Zahray 25.4k50 gold badges141 silver badges233 bronze badges 2
  • I had the exact same problem. I ended up adding a breakpoint in the js code at the place that triggered the close so that I could inspect the net history up to that point. – beldaz Commented Oct 25, 2017 at 19:30
  • 1 This makes me extremely angry. How could any browser allow such an action to be performed from a web page?! I want to set things on fire. – Andrew Commented Sep 20, 2018 at 15:35
Add a ment  | 

2 Answers 2

Reset to default 4

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.

本文标签: How to prevent javascript inside firefox from closing a windowtabStack Overflow