一尘不染

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

javascript

我想使用获取ID为参数的处理程序来处理click事件。iframe``iframe

我可以onClick通过JavaScript如下添加事件处理程序,并且可以正常运行:

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

但是在这种情况下,我无法将参数传递给clic()。我试图打印this.idclic(),但没有结果。

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>

阅读 230

收藏
2020-05-01

共1个答案

一尘不染

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

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

但是,我建议您使用更好的方法来访问框架(我只能假设您使用的是DOM0方式,即按其名称访问框架窗口-只是为了向后兼容而保留)。

document.getElementById("myFrame").contentDocument.addEventListener(...);
2020-05-01