Je souhaite déterminer si le visiteur de la page actuelle se trouvait déjà sur mon blog à la page précédente pour, par exemple, lui afficher un message de bienvenue ou le diriger vers une page ou un article spécifique.

La propriété referrer de l'objet window.document contient l'url de la page par laquelle vous arrivez sur la page en cours.

Si vous êtes sur la page http://pseudo.cowblog.fr et que vous cliquez sur le lien "Profil" dans le menu, lorsque vous arrivez sur la page du profil, document.referrer contient http://pseudo.cowblog.fr

Il suffit donc de tester cette propriété avant d'afficher un message de bienvenue.

Si vous avez eu la curiosité d'afficher le code source de la page html de votre blog, vous aurez pu remarquer ces lignes au début :

qui définissent une variable javascript contenant le pseudo de votre blog. On va l'utiliser dans le script qui va suivre.

On commence par empêcher l'exécution de ce code javascript lorsqu'on se trouve sur la page "Code HTML libre" comme vu sur l'article précédent.

Ensuite, on va tester la position de la sous-chaine (indexOf) http://pseudo.cowblog.fr dans la chaine que contient document.referrer.

Si la sous-chaîne est trouvée, sa position sera à 0, le visiteur se trouvait déjà sur une page du blog avant d'arriver à la page en cours. Dans le cas contraire, elle sera à -1, le visiteur n'était pas sur le blog on lui affiche donc le message de bienvenue, quelle que soit la page du blog sur laquelle il se trouve.

Publié par Sakatruc le 18 janvier 2008 à 18:55

Classé dans HTML | 3 commentaires

Tags :

Par Mainly le 18 janvier 2008 à 21:13
Mieux vaut donc ne pas souhaiter la bienvenue aux visiteurs.
Ou alors utiliser cet article, ça marche aussi.
Par miniklem0u le 11 mai 2008 à 18:58
Bon j'ai essayé cette technique (et ça marche très bien, merci et bravo) mais j'ai une question : Serait il possible de faire une alerte dans laquelle on pourrait mettre des apostrophes et/ou des retours à la ligne? Lorsqu'on insère un de ces caractères, ça ne fonctionne plus... Merci d'avance :)
Par LateLament le 11 mai 2008 à 19:25
Si tu encadres ta phrase par des apostrophes il faudra ensuite "échapper" les apostrophes "internes" avec le caractère \ :
alert('Je m\'appelle');

Si tu encadres ta phrase par des guillemets, les apostrophes passeront mais il faudra "échapper" les guillemets :
alert("Je m'appelle \"Late\"');

Pour insérer un retour ligne, c'est \n :
alert('Salut\nMoi c\'est Late');
 

Ajouter un commentaire

Note : Sakatruc n'accepte que les commentaires des personnes possédant un compte sur Cowblog : vous devez obligatoirement être identifié pour poster un commentaire.









Commentaire :








Votre adresse IP sera enregistrée pour des raisons de sécurité.
 

La discussion continue ailleurs...

Pour faire un rétrolien sur cet article :
http://sakatruc.cowblog.fr/trackback/2408371

 
Créer un podcast