簡體   English   中英

如何向 iframe 中的 p 元素添加點擊事件(使用 jQuery)

[英]How to add a click event to p elements in iframe (using jQuery)

如何向 iframe 中的<p>元素添加點擊事件(使用 jQuery)

<iframe frameborder="0" id="oframe" src="iframe.html" width="100%" name="oframe">

有一個特殊的 jQuery 函數可以做到這一點: .contents() 請參閱示例以了解其工作原理。

最好的辦法是調用 iframe,只要它是您域的一部分。

iframe.html

<html>
    <head>
        <script>
            window.MyMethod = function()
            {
                $('p').click();
            }
        </script>
    </head>
    <body></body>
</html>

然后使用

document.getElementById('targetFrame').contentWindow.MyMethod();

調用該函數。

另一種方法是通過window.frames訪問 iframe。

<iframe name="myIframe" src="iframe.html"/>

和 javascript

child_frame = window.frames['myIframe'].document;
$('p',child_frame).click(function(){
    alert('This click as bound via the parent frame')
});

那應該可以正常工作。

想要添加這個,作為一個完整的復制粘貼解決方案(適用於 Firefox 和 Chrome)。 有時很容易忘記在文檔之后調用事件,因此 iframe 已完全加載:

$('#iframe').on('load', function() {
    $('#iframe').contents().find('#div-in-iframe').click(function() {
        // ...
    });
});

iframe 必須在同一個域中才能工作。

要從 iframe 中訪問任何元素,一個簡單的 JavaScript 方法如下:

var iframe = document.getElementById("iframe");
var iframeDoc = iframe.contentDocument || iframe.contentWindow;
// Get HTML element
var iframeHtml = iframeDoc.getElementsByTagName("html")[0];

現在您可以使用此 html 元素選擇任何元素

iframeHtml.getElementById("someElement");

現在,您可以將您想要的任何事件綁定到此元素。 希望這會有所幫助。 抱歉英語不正確。

通過將 IFrame 文檔的引用作為 jQuery 的第二個參數,即上下文:

jQuery("p", document.frames["oframe"].document).click(...);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM