Как добавить событие click для p элементов в iframe (используя jQuery) - PullRequest
9 голосов
/ 14 сентября 2010

Как добавить событие клика к элементам <p> в iframe (с помощью jQuery)

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

Ответы [ 4 ]

8 голосов
/ 14 сентября 2010

Для этого есть специальная функция jQuery: .contents().Смотрите пример того, как это работает.

1 голос
/ 14 сентября 2010

Ваш лучший лучший вариант - вызвать iframe КАК ДОЛГО, КАК он является частью вашего домена.

iframe.html

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

, а затем использовать

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

Для вызова этой функции.

другой способ - получить доступ к iframe через window.frames.

<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')
});

Это должно работать нормально.

0 голосов
/ 20 марта 2015

Чтобы получить доступ к любому элементу из 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");

Теперь,Вы можете привязать любое событие, которое хотите, к этому элементу.Надеюсь это поможет.Извините за неправильный английский.

0 голосов
/ 14 сентября 2010

Предоставляя ссылку на документ IFrame в качестве второго параметра jQuery, который является контекстом:

jQuery("p", document.frames["oframe"].document).click(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...