Javascript : préférer href= à replace pour une meilleure navigation


Hop, comme d’habitude, un petit mémo utile (enfin pour moi).

Si vous avez besoin de créer un lien sur un élément autre qu’un <a> bien légitime, vous allez forcément utiliser le javascript.

On va donner ici deux possibilités :
onclick="window.location.replace('mon-url-de-lien');
et
onclick="window.location.href='mon-url-de-lien';

Dans mon cas, c’était pour donner le lien à un élément <li> contenant une image, un titre lien et un texte. Avec un ligne de javascript, je m’évite dix lignes de CSS pour donner le layout au lien sur toute la surface du <li> sans mettre le lien sur les autres éléments.

Donc, des deux solutions proposées, préférez la seconde, onclick="window.location.href='mon-url-de-lien'; , car si les deux codes semblent donner le même résultat, en fait, d’un point de vue navigation il n’en est rien.

onclick="window.location.replace('mon-url-de-lien'); va indiquer à votre navigateur de « remplacer » la page active par celle dont le lien est donné dans le code. Problème, le bouton back du navigateur est du coup inopérant.

Donc, pour ne pas perdre votre visiteur, préférez onclick="window.location.href='mon-url-de-lien'; qui lui permet l’usage du bouton back du navigateur.


4 réponses à “Javascript : préférer href= à replace pour une meilleure navigation”

  1. Bien, mais c’est quand même préférable de faire des liens html et non javascript pour le référencement, les bots n’interprétant pas le Javascript.

  2. Florent V : de l’utilité des aide mémoire en ligne. ;)

    romualb : en fait, dans une certaine mesure les bots sont capables de suivre des liens javascript, ceci dit, dans le cas présenté, il y a déjà le lien sur le « titre » de la fiche, donc pas de soucis.

  3. C’est drôle parce que pour moi c’est justement le replace qui est fort utile !
    En effet, dans certains cas ca me gène beaucoup que l’utilisateur utilise le bouton du navigateur pour revenir en arrière …