Je veux gérer l’événement click
sur un iframe
avec un gestionnaire qui obtient l’identifiant de iframe
comme paramètre.
Je peux ajouter un gestionnaire d'événements onClick
via JavaScript comme suit et cela fonctionne très bien:
iframe.document.addEventListener('click', clic, false);
Mais dans ce cas, je ne parviens pas à transmettre un paramètre à clic()
. J'ai essayé d'imprimer this.id
Dans clic()
mais aucun résultat.
onClick
L'attribut HTML ne fonctionne pas du tout, le gestionnaire n'est pas appelé.
<html>
<head>
<script type="text/javascript">
function def() {
myFrame.document.designMode = 'on';
}
function clic(id) {
alert(id);
}
</script>
</head>
<body onLoad="def()">
<iframe id="myFrame" border="0" onClick="clic(this.id)"></iframe>
</body></html>
Vous pouvez utiliser des fermetures pour transmettre des paramètres:
iframe.document.addEventListener('click', function(event) {clic(this.id);}, false);
Cependant, je vous recommande d'utiliser une meilleure approche pour accéder à votre cadre (je ne peux que supposer que vous utilisez la façon DOM0 d'accéder aux fenêtres de cadre par leur nom - quelque chose qui n'est conservé que pour la compatibilité descendante):
document.getElementById("myFrame").contentDocument.addEventListener(...);
iframe n'a pas d'événement onclick mais nous pouvons l'implémenter en utilisant l'événement onload d'iframe et le javascript comme celui-ci ...
function iframeclick() {
document.getElementById("theiframe").contentWindow.document.body.onclick = function() {
document.getElementById("theiframe").contentWindow.location.reload();
}
}
<iframe id="theiframe" src="youriframe.html" style="width: 100px; height: 100px;" onload="iframeclick()"></iframe>
J'espère que cela vous sera utile ....