Mon objectif est de changer l'attribut onclick
d'un lien. Je peux le faire avec succès, mais le lien résultant ne fonctionne pas dans ie8. Cela fonctionne dans ff3.
Par exemple, cela fonctionne dans Firefox 3, mais pas dans IE8. Pourquoi?
<p><a id="bar" href="#" onclick="temp()">click me</a></p>
<script>
doIt = function() {
alert('hello world!');
}
foo = document.getElementById("bar");
foo.setAttribute("onclick","javascript:doIt();");
</script>
Vous n'avez pas besoin d'utiliser setAttribute pour cela - Ce code fonctionne (IE8 également)
<div id="something" >Hello</div>
<script type="text/javascript" >
(function() {
document.getElementById("something").onclick = function() {
alert('hello');
};
})();
</script>
votre meilleur pari est d'utiliser un framework javascript comme jquery ou prototype, mais, à défaut, vous devez utiliser:
if (foo.addEventListener)
foo.addEventListener('click',doit,false); //everything else
else if (foo.attachEvent)
foo.attachEvent('onclick',doit); //IE only
modifier:
aussi, votre fonction est un peu décalée. CA devrait etre
var doit = function(){
alert('hello world!');
}
Vous pouvez également définir onclick pour appeler votre fonction comme ceci:
foo.onclick = function() { callYourJSFunction(arg1, arg2); };
De cette façon, vous pouvez également passer des arguments. .....
Vous pouvez également utiliser:
element.addEventListener("click", function(){
// call execute function here...
}, false);