Adding click event handler to iframe
Solution 1
You can use closures to pass parameters:
iframe.document.addEventListener('click', function(event) {clic(this.id);}, false);
However, I recommend that you use a better approach to access your frame (I can only assume that you are using the DOM0 way of accessing frame windows by their name - something that is only kept around for backwards compatibility):
document.getElementById("myFrame").contentDocument.addEventListener(...);
Solution 2
iframe doesn't have onclick event but we can implement this by using iframe's onload event and javascript like this...
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>
I hope it will helpful to you....
samach
Updated on January 31, 2020Comments
-
samach over 4 years
I want to handle
click
event on aniframe
with a handler that gets theiframe
’s id as parameter.I’m able to add an
onClick
event handler via JavaScript as follows and it works fine:iframe.document.addEventListener('click', clic, false);
But in this case I’m unable to pass a parameter to
clic()
. I tried to printthis.id
inclic()
but no result.onClick
HTML attribute does not work at all, the handler is not called.<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>