IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

AJAX et retour page précédente


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut AJAX et retour page précédente
    Bonjour, j'ai un site qui fonctionne avec ce script :
    /*************************************************
    Fonction de definition de l'object xhr
    **************************************************/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function new_xhr(){
    	var xhr_object = null;
    	if(window.XMLHttpRequest) // Firefox et autres
    	   xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject){ // Internet Explorer
    	   try {
                    xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                }
    	}
    	else { // XMLHttpRequest non supporté par le navigateur
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    	   xhr_object = false;
    	}
    	return xhr_object;
    }
    /*****************************************************
    Fonction qui va recharger le contenu
    ******************************************************/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function load_page(select) {
    	var xhr = new_xhr();//On crée un nouvel objet XMLHttpRequest
    	xhr.onreadystatechange = function(){
    		if ( xhr.readyState == 4 ){//Actions executées une fois le chargement fini
    			if(xhr.status  != 200){//Message si il se preoduit une erreur
    				document.getElementById("content").innerHTML ="Error code " + xhr.status;
    			} else {//On met le contenu du fichier externe dans la div "content"
    				document.getElementById("content").innerHTML = xhr.responseText;
    			}
    		} else {//Message affiché pendant le chargement
    			document.getElementById("content").innerHTML = "Chargement en cours ... <img src='loading.gif' alt='' align='middle'/>";
    		}
    	}
    	xhr.open("GET", select.split('?')[1]+".php", true);//Appel du fichier externe
    	xhr.send(null);
    }
    Existe-t'il un moyen de faire fonctionner la navigation page précédente avec ceci, ou en le modifiant un peu ?
    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Oui c'est possible mais faudra rajouter un lien avec l'appel qui va bien window.history.back() a ton innerHTML lors de l'écriture dans la page réponse Ajax:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("content").innerHTML = xhr.responseText + '<a href="javascript:window.history.back();">Retour</a>';
    ou mettre un simple lien vers la page en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("content").innerHTML = xhr.responseText + '<a href="mypage.html">Retour</a>';

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut
    Merci pour la réponse, mais ça ne marche pas, le lien s'affiche mais le contenu reste inchangé quand on clique dessus...
    En plus c'est pas tout à fait ça que je voulais dire, j'ai déjà des liens retour dans mon site, et j'avais essayé de mettre history.back() sans succés.
    Et je parlais plutôt de pouvoir utiliser les flèches du navigateur.
    Le problème est peut-être du coup que history.back() reste inactif, mais je ne vois pas de raison à ça...

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Tout dépend de l'action précédente d'ou l'ajout du lien vers ma page.html car si tu POST un formulaire l'history back risque de re poster soit ne pas marcher.Essaye avec window.history.go(-1) voir -2 ou -3 ou Re voir le concept.

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Pour la navigation ajax il faut changer le hash dans ton url à chaque changement du DOM si tu veux que le changement soit enregistré dans l'historique du navigateur. C'est aussi utile pour le référencement des pages.

    En complément il faudra mettre un écouteur onchange sur le hash pour recharger le contenu adéquat en fonction de sa valeur.

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut
    Oui j'avais compris entre-temps qu'il fallait indiquer à la page de recharger le contenu, mais je n'arrive pas à le mettre en place, est-ce que je peux avoir un coup de main supplémentaire ?
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] Retour pages précédentes par navigateur
    Par pat06 dans le forum Langage
    Réponses: 9
    Dernier message: 17/01/2008, 15h33
  2. Formulaire et retour page précédente
    Par namstou3 dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2007, 14h14
  3. Retour page précédente
    Par Mister Nono dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/07/2006, 22h14
  4. [2.0] Retour page précédente
    Par davasm dans le forum ASP.NET
    Réponses: 6
    Dernier message: 20/06/2006, 16h25
  5. Réinitialiser formulaire après retour page précédente
    Par chivita dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 18/05/2006, 17h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo