web-dev-qa-db-fra.com

Changer l'emplacement de la fenêtre Jquery

J'utilise ajax pour charger le contenu de mon site Web et je souhaite mettre à jour l'emplacement de la fenêtre lorsque ajax a réussi.

Comment puis-je mettre à jour l'emplacement de la fenêtre sur "/ newpage"? J'ai besoin que les utilisateurs puissent revenir en arrière et se rafraîchir. Est-ce possible??

20
user342391

Je suppose que vous utilisez jQuery pour passer l'appel AJAX afin que vous puissiez le faire assez facilement en plaçant la redirection dans le succès, comme suit:

    $.ajax({
       url: 'ajax_location.html',
       success: function(data) {
          //this is the redirect
          document.location.href='/newpage/';
       }
    });
43
Munzilla

Vous pouvez définir la valeur de document.location.href à cette fin. Il pointe vers l'URL actuelle. jQuery n'est pas obligé de faire cela.

6
jwueller

vous pouvez utiliser les nouvelles fonctions d'état Push/pop dans l'API de manipulation de history .

4
Rathienth Baskaran

En supposant que vous souhaitiez changer l'URL en une autre dans le même domaine, vous pouvez utiliser ceci:

history.pushState('data', '', 'http://www.yourcurrentdomain.com/new/path');
3
guilleva

J'écris une fonction commune pour la fenêtre de changement 

ce code peut être utilisé en parallèle dans tout type de projet

function changewindow(url,userdata){
    $.ajax({
        type: "POST",
        url: url,
        data: userdata,
        dataType: "html",
        success: function(html){                
            $("#bodycontent").html(html);
        },
        error: function(html){
            alert(html);
        }
    });
}
0
overflow

Si vous souhaitez utiliser le bouton de retour, vérifiez ceci. https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin

Utilisez document.location.href pour modifier l'emplacement de la page, placez-le dans la fonction lors d'une exécution réussie en ajax.

0
Capt Otis