将点击事件处理程序添加到iframe

我想要处理iframe的ID作为参数的处理程序的iframe上的click事件。

我可以通过JavaScript添加一个onClick事件处理程序如下,它工作正常:

 iframe.document.addEventListener('click', clic, false); 

但在这种情况下,我无法将parameter passing给clic() 。 我试图在clic()打印this.id ,但没有结果。

onClick HTML属性根本不起作用,处理程序不被调用。

 <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> 

您可以使用闭包来传递参数:

 iframe.document.addEventListener('click', function(event) {clic(this.id);}, false); 

不过,我build议你使用更好的方法来访问你的框架(我只能假设你正在使用DOM0的方式访问框架窗口的名字 – 这只是为了向后兼容):

 document.getElementById("myFrame").contentDocument.addEventListener(...); 

IFRAME没有onclick事件,但我们可以通过使用IFRAME的onload事件和JavaScript像这样实现…

 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> 

我希望这对你有帮助。