Это правильный способ перенаправления? - PullRequest
1 голос
/ 20 июля 2011

В ответ на этот вопрос Я написал эту функцию (ну, я сделал ее более сложной, чем в этом ответе):

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();
}

Ответ, который я написал, получил 3 отрицательных голоса, поэтому мой вопрос: это правильный способ сделать это или просто window.location.href = url достаточно?

Ответы [ 3 ]

3 голосов
/ 20 июля 2011

window.location.href = url является допустимым способом перенаправления браузера.Обычно я не рекомендую перенаправлять браузер, если в этом нет необходимости.Существует всего несколько хороших причин для перенаправления через JS.

0 голосов
/ 20 июля 2011

Я думаю window.location.href = url достаточно.

0 голосов
/ 20 июля 2011

лучше использовать встроенный метод, так как он более эффективен и более широко поддерживается большинством браузеров, использующих javascript, а также требует меньше памяти для загрузки совершенно новой функции и ее запуска.

И window.location.href = url - это правильный способ перенаправления браузера, как сказал zzzzBov

...