IFrame的按钮单击事件(IFrame button click event)

2019-07-03 13:40发布

我试图在iframe的事件监听附加到按钮的“单击”事件的网页上。 在iframe页面属于同一个域作为父窗口。

window.frames["iframe_Id"].document.getElementById("button_id").addEventListener("click",functionToRun,false);

上述样品不是为我工作。 它可能只是在我的实际代码AA语法错误,但我想看看这是一般的想法。

注:我发现了大量的实例在其上添加click事件给整个的iframe,但我不知道它的工作原理相同的iframe内的按钮。

Answer 1:

使用jQuery:

$("#iframe_Id").contents("#button_id").click(functionToRun);

或者没有jQuery的:

document.getElementById("iframe_Id").contentWindow.document.getElementById("button_id").addEventListener("click", functionToRun, false);

这如果IFRAME符合只会工作, 同一产地的政策。



Answer 2:

window.frames是阵列状物体,因此它的元件可以仅通过索引来访问。

您应该循环通过他们,并检查它们的ID,例如:

var frame; for(i = 0; i < frames.length; i++) {
    frame = frames[i];
    if (frame.id === 'iframe_id') {
         frame.document
              .getElementById("button_id")
              .addEventListener("click",functionToRun,false);
    }
}


Answer 3:

您是否尝试过在执行时“捕捉”与“冒泡”阶段?

document.getElementById("iframe_Id")
 .document.addEventListener("click", functionToRun, true);

请注意, true而不是false的最后一个参数。



Answer 4:

window.frames["iframe_Id"].contentWindow.document.getElementById("button_id").addEventListener("click",functionToRun,false);

                              ^

contentWindow财产。

从DOM IFRAME元素,脚本能获得通过contentWindow属性访问所包含的HTML页面的窗口对象。



文章来源: IFrame button click event