J'essaie de modifier tous les liens sur une page afin qu'ils effectuent un travail supplémentaire quand ils sont cliqués.JavaScript: Ajout d'un gestionnaire onClick sans écraser celui existant
Une approche triviale pourrait être quelque chose comme ceci:
function adaptLinks()
{
var links = document.getElementsByTagName('a');
for(i = 0; i != links.length; i++)
{
links[i].onclick = function (e)
{
<do some work>
return true;
}
}
}
Mais certains liens ont déjà un gestionnaire onClickqui doit être préservé. J'ai essayé les éléments suivants:
function adaptLinks()
{
var links = document.getElementsByTagName('a');
for(i = 0; i != links.length; i++)
{
var oldOnClick = links[i].onclick;
links[i].onclick = function (e)
{
if(oldOnClick != null && !oldOnClick())
{
return false;
}
<do some work>
return true;
}
}
}
Mais cela ne fonctionne pas parce que oldOnClick est évaluée uniquement lorsque le gestionnaire est appelé (il contient la valeur du dernier maillon que ce point).
J'ai vu que de nombreuses tâches similaires Aroun d sont résolus en utilisant jQuery. Je suis actuellement en train d'y jeter un coup d'œil, car il semble également faciliter plusieurs autres tâches. – rluba