|
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>
|