7724 votes

Comment puis-je faire une redirection de la page en jQuery/JavaScript?

Comment puis-je rediriger l'utilisateur d'une page à l'autre à l'aide de jQuery?

14587voto

Ryan McGeary Points 76053

jQuery n'est pas nécessaire, et window.location.replace(...) permettra de mieux simuler une redirection HTTP.

C'est mieux que d'utiliser window.location.href =car replace() ne met pas la page d'origine dans la session de l'histoire, le sens, l'utilisateur ne sera pas coincé dans un incessant retour du bouton fiasco. Si vous voulez simuler un clic sur un lien, utilisez location.href. Si vous voulez simuler une redirection HTTP, utilisez location.replace.

Par exemple:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

1663voto

Boris Guéry Points 23606

AVERTISSEMENT: Cette réponse a été fournie comme une solution possible. Bien que, de toute évidence, le JavaScript et la meilleure approche à adopter, ce qui suppose de jQuery.

var url = "http://stackoverflow.com";    
$(location).attr('href',url);

648voto

mcpDESIGNS Points 8521

Toutes ces réponses sont correctes, mais je vais poster pour ceux qui peuvent courir dans la même étrange question que j'ai fait. J'ai eu un problème avec l' HTTP_REFERER se perdu lors de l'utilisation de tout simplement l'emplacement.href.

Dans IE8 et inférieur, de l'emplacement.href (ou de tout & de toutes les variations de localisation perdra référent), qui, pour sécuriser les sites est important de maintenir, car les tests de dépistage (url collage/ session / etc) peut être utile de dire si une demande est légitime. (Remarque: il existe également des moyens pour contourner / usurper ces référents, comme indiqué par l'affaissement du lien dans les commentaires)

Ma croix-navigateur correctif est cette simple fonction. En supposant que vous avez, bien sûr, sont inquiets de perdre des HTTP_REFERER comme je l'ai dit. (sinon, vous pouvez simplement utiliser de l'emplacement.href etc)

Utilisation: Redirect('anotherpage.aspx');

function Redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // IE8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers
    else { window.location.replace(url); }
}

420voto

1.

    window.location.href="login.jsp?backurl="+window.location.href;

2.

    window.history.back(-1);

3.

    window.navigate("top.jsp");

4.

    self.location="top.htm";

5.

    top.location="error.jsp";

6.

    window.location = window.location.host;

7.

    $(location).attr('href',"http://www.google.com");           //jquery

8.

    window.location.assign("http://www.mozilla.org"); 

9.

    window.location.replace("http://www.kqingdom.com");

314voto

Ionuț G. Stan Points 62482

Vous n'avez pas besoin de jQuery pour faire ça:

window.location = "http://www.page-2.com";

Note: Ceci est similaire à "cliquant" sur un lien et la page du dossier de changement dans l'historique du navigateur.
Pour remplacer la page actuelle dans l'histoire, l'utilisation de l'emplacement.remplacer

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X