Evansive
@Evansive

Как реализовать исполнение JavaScript-кода внутри IFrame?

Здравствуйте.

Есть iframe, который создается в результате загрузки страницы.

var object_preview = $('#preview');
 
var iframe = $('<iframe id="preview_frame">'),
    iframe_body,
    iframe_head;
 
object_preview.html(iframe);
 
setTimeout(function() {
   var doc = iframe[0].contentWindow.document;
   iframe_body = $('body', doc);
   iframe_head = $('head', doc);
}, 1);


При нажатии определенной кнопки, в head-тег этого iframe вставляется JS-код (jQuery), который необходимо исполнить внутри дерева iframe.

Обработчик нажатия кнопки:

$('#run').click(function() {
        iframe_body.append('<script type="text/javascript">\
                $(document).ready(function() {\
                        $(".test").click(function() { alert(true); });\
                });\           
        </script>');
});


В данный момент код не выполняется, как это можно реализовать?

Элемент с классом test находится внутри дерева iframe; код необходимо исполнить также внутри iframe, а не на всей странице.

HTML-структура:

8bXidIY.png

Заранее большое спасибо.
  • Вопрос задан
  • 3790 просмотров
Пригласить эксперта
Ответы на вопрос 1
@antonre
Информации недостаточно, но подозреваю, что проблема в том, что

$(document).ready(function() {
    $(".test").click(function() { alert(true); });
});

отрабатывает при событии загрузки dom в iframe.
В данном случае событие не будет срабатывать. Перепишите без обертки

$(".test").click(function() { alert(true); });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы