orlp
orlp

Reputation: 117691

Is this the correct way to redirect?

In reponse to this question I wrote this function (well, I made it a bit more elaborate then in that answer):

function redirectto(url) {
    window.location.href = url; // first try it the easy way

    // we're going to do it the hard way - create a temporary form and submit it
    var tmpform = document.createElement("form");
    tmpform.method = "GET";

    // add data, use hidden fields for querystrings
    if (url.indexOf("?") == -1) {
        tmpform.action = url;
    } else {
        var urlparts = url.split("?", 2);
        tmpform.action = urlparts[0];

        var queryparts = urlparts[1].replace(/\+/g, " ").split(/[&;]/g);
        for (var i = 0; i < queryparts.length; i++) {
            var pair = queryparts[i].split("=");
            var key = pair[0];
            var value = pair.length > 1 ? pair[1] : "";

            var field;
            try { // sigh IE, can't you do ANYTHING right?
                field = document.createElement("<input type=\"hidden\" name=\"" + key + "\" value=\"" + value + "\">");
            } catch(err) {
                field = document.createElement("input");
                field.type = "hidden";
                field.name = key;
                field.value = value;
            }
            tmpform.appendChild(field);
        }
    }

    // add to page and submit
    document.body.appendChild(tmpform);
    tmpform.submit();
}

The answer I wrote got 3 downvotes, so my question is: is this the correct way to do this or is simply window.location.href = url enough?

Upvotes: 1

Views: 3812

Answers (3)

Derek 朕會功夫
Derek 朕會功夫

Reputation: 94319

I think window.location.href = url is enough.

Upvotes: 0

Vish
Vish

Reputation: 4492

its is better to use the built in method as it is more efficient and more widely supported by most of the browsers running javascript and also requires less memory that loading a whole new function and running that.

And window.location.href = url is a valid way of redirecting the browser as zzzzBov said

Upvotes: 0

zzzzBov
zzzzBov

Reputation: 179086

window.location.href = url is a valid way of redirecting the browser. Typically I discourage browser redirection unless absolutely necessary. There tend to be few good reasons to redirect via JS.

Upvotes: 3

Related Questions