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

| 我想使用获取handler1ѭid作为参数的处理程序来处理
iframe
上的
click
事件。 我可以通过JavaScript如下添加
onClick
事件处理程序,并且可以正常运行:
iframe.document.addEventListener(\'click\', clic, false);
但是在这种情况下,我无法将参数传递给
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);
但是,我建议您使用更好的方法来访问框架(我只能假设您使用的是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>
希望对您有帮助。     

要回复问题请先登录注册