J'aimerais changer la valeur de l' onclick
d'attribut sur une ancre. Je veux le mettre à une nouvelle chaîne qui contient du code JavaScript. (Cette chaîne est prévue pour le code JavaScript côté client par le serveur, et il contient tout ce que vous pouvez mettre dans l' onclick
de l'attribut HTML.) Voici quelques choses que j'ai essayé:
- À l'aide de jQuery
attr("onclick", js)
ne fonctionne pas avec Firefox et IE6/7. - À l'aide de
setAttribute("onclick", js)
fonctionne avec Firefox et IE8, mais pas IE6/7. - À l'aide de
onclick = function() { return eval(js); }
ne fonctionne pas parce que vous n'êtes pas autorisé à utiliserreturn
code est transmis à l'eval()
.
Quelqu'un a une suggestion pour définir l'attribut onclick de faire ce travail pour Firefox et IE 6/7/8? Voir aussi ci-dessous le code que j'ai utilisé pour le test.
<html>
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var js = "alert('B'); return false;";
// Set with JQuery: doesn't work
$("a").attr("onclick", js);
// Set with setAttribute(): at least works with Firefox
//document.getElementById("anchor").setAttribute("onclick", js);
});
</script>
</head>
<body>
<a href="http://www.google.com/" id="anchor" onclick="alert('A'); return false;">Click</a>
</body>
</html>