Search code examples
javascriptwindow.open

javascript window.open infinite loading


I have a JQuery ajax request that can return error status and messages.

To handle them I use this code :

$.ajax("url", {
    options: options
}).done(function(text, statusText, data) {
    //Manage data
}).fail(function(data) {
    //Manage fail
});

In the fail handle I want, in case of 500: internal server error, to open a new tab with the response text (for debug purposes)

I do it this way :

if (data.status === 500) {
    var w = window.open("App error", "blank");
    w.document.write(data.responseText);
}

And it works !
Except one point : my browser loads the page, the content is displayed (and as it's static content all of this is not a real problem), but the tab is marked as loading... Loading... Loading...

I'm using Firefox 63.0(64bits).

Does anyone know where this comes from ? It's not really annoying, it's just a (fun ?) behavior I don't understand.

Here is a fiddle on which I get the exact same behavior.


Solution

  • It has to do with the w.document.write line. If you close the document, the loader will finish. Change the code to:

    if (data.status === 500) {
        var w = window.open("App error", "blank");
        w.document.write(data.responseText);
        w.document.close();
    }
    

    Source: Open about:blank window in firefox