Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
je m'excuse d'avance si ma question semble stupide, j'ai cherché plus amples informations sur ce forum (et sur Google), mais je n'ai rien trouvé pouvant m'apporter d'éléments de réponse.
Ma question est la suivante : est-il possible de modifier l'URL d'une page sans la recharger, et si oui, comment ?
Je sais coder principalement en PHP et Javascript(/AJAX), et je n'ai que peu de connaissance en Flash et/ou Flex.
Dans une application utilisant de l'AJAX, je souhaiterais modifier dynamiquement l'URL affichée par le navigateur (sachant que la page n'est pas rechargée). C'est impossible en Javascript, mais j'ai vu dans une vidéo que cela était possible en Flex, mais impossible de trouver comment. D'où ma question .
Merci d'avance pour toute aide que vous pourrez m'apporter.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
En fait c'est pour que le client ne soit pas perdu s'il souhaite revenir sur le site plus tard.
Imaginons un site en Ajax de E-commerce :
- Je suis sur la page qui présente toute une gamme de chaussures pour homme.
- Je clique sur un filtre qui sélectionne les chaussure bleues.
- Le site fait la requête en Ajax et affiche directement le résultat du filtre sans recharger la page.
- Le lien de la page est toujours le même et donc si l'utilisateur met cette page en favori, il n'aura pas sa sélection avec les chaussures bleues, mais la sélection sans filtre.
- De même s'il utilise le bouton "back" du navigateur, il ne va pas retomber sur la sélection sans filtre, mais sur la page qu'il a utilisé avec d'arriver sur la page produit.
Je vais creuser l'utilisation des ancres, auxquelles je n'avais pas pensé, ça me parait parfait.
Effectivement, je n'avais pas pensé au problème de fishing qu'un changement d'adresse pourrait provoquer.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Conrad a écrit :- Le lien de la page est toujours le même et donc si l'utilisateur met cette page en favori, il n'aura pas sa sélection avec les chaussures bleues, mais la sélection sans filtre.
Oui, c'est d'ailleurs bien un des gros problème d'ajax (avec d'autres, dont le bouton arrière cassé et le manque chronique d'accessibilité).
Le seul moyen de le contourner ce problème (mais les autres restent) est de faire comme google maps et de proposer un lien permettant de revenir dans l'état en cours (encore faut-il que l'utilisateur le voie, le comprenne et l'utilise).
Wikimapia arrive à changer son URL en direct (selon le lieu et le niveau de zoom): http://www.wikimapia.org. Et apparemment, c'est basé sur un système d'ancre. Il faudrait regarder plus en détail pour voir comment c'est fait
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1
Nicosmos a écrit :Wikimapia arrive à changer son URL en direct (selon le lieu et le niveau de zoom): http://www.wikimapia.org. Et apparemment, c'est basé sur un système d'ancre. Il faudrait regarder plus en détail pour voir comment c'est fait
Ah oui c'est marrant
Mais ça ne permet quand-même pas l'utilisation du bouton de retour arrière, ce qui est étrange puisque l'adresse change...
Oui, j'ai le même problème pour le moment,les navigateur ne gèrent pas les back/next comme étant un changement de page, quand la seule différence est une ancre.
Je ne sais pas s'il est possible de mettre un événement javascript sur l'appui du bouton précédent/suivant (je n'ai pas trouvé et je ne pense pas que cela existe), et donc à moins de vérifier en permanence que la page en cours soit la même que celle mémorisé, je ne sais pas comment faire.
Si je trouve je vous tiens au courant.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
J'ai trouvé une astuce qui pour le moment ne me convient pas à 100% et qui ne marche pas sur Internet Explorer 6 (pas testé sur le 7), mais qui permet de faire des Précédent/Suivant qui fonctionne sur Firefox :
current_hash = window.location.hash;
checkPageback();
setColor();
function checkPageback() {
if (window.location.hash != current_hash) {
current_hash = window.location.hash;
restartColor();
}
setTimeout("checkPageback()",100);
}
Il s'agit juste d'un vieux système de timer qui vérifie si l'adresse change toute les 100ms, et si c'est le cas il refait la sélection des préférences passées en paramètre.
A voir comment faire fonctionner ça sous IE.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1