RECHERCHE

Plan du site

BOURSE

 

RUBRIQUES

 
 TUTORIEL CLIENTS WEB 
Eviter le scrolling intempestif dû à l'utilisation de #
"Lorsque l'on utilise certains scripts, la page se retrouve scrollée vers le haut jusqu'au début. Comment éviter cela ?" (12/07/2004)

Effectivement, nombreux sont les appels JavaScript (y compris certains publiés sur le JDN Développeurs) qui, lorsqu'ils ont besoin d'un lien pour activer leurs fonctionnalités, se contentent de remplir le champ href avec le caractère # pour éviter que le clic renvoie l'utilisateur vers une page.

L'inconvénient est évidemment le suivant : si l'utilisateur a déjà fait défiler la page vers le bas quand il clique sur le lien en question, cette page est réaffichée depuis sont début.

Cela est dû au fait que le navigateur y voit une demande de recherche d'une ancre (définie par <a name="monAncre">embruns</a>), et ne la trouvant pas, renvoie par défaut le lecteur en haut du document.

Une manière de s'y prendre, moins troublante pour le lecteur, consiste donc à se débarrasser du caractère #, et de tout autre caractère que le navigateur pourrait, extension ou non, confondre avec le nom d'une page, et de se servir du pseudo-protocole javascript: . Celui-ci n'indique aucun protocole de communication réel (http:, mailto:, gopher:...), mais commande d'exécuter le code JavaScript qui s'y trouve.
En l'occurrence, nous n'avons besoin de ne rien faire de plus que ce qui se trouve déjà dans l'attribut onClick="...", aussi il suffit d'indiquer un javascript: vide pour que cela fonctionne.

Voici les deux manières côte à côte : Lorem Ipsum.

  Forum

Réagissez dans les forums de JDN Développeurs

Le code :
<a href="javascript:;" onClick="window.open(location.href, 'tralala', 'width=50, height=50');">Lorem</a>
<a href="#" onClick="window.open(location.href, 'tralala', 'width=50, height=50');">Ipsum</a>

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 



Votre avis sur cette publicité


Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages