Подтвердить что ты не робот

Вставить содержимое в iFrame

Я пытаюсь вставить некоторый контент в "чистый" iFrame, но ничего не вставлено.

HTML:

<iframe id="iframe"></iframe>

JS:

$("#iframe").ready(function() {
    var $doc = $("#iframe").contentWindow.document;
    var $body = $("<body>").text("Test");
    $body.insertAfter($doc);
});

Я вызываю функцию ready, поэтому я не понимаю, почему она не вставляет.

4b9b3361

Ответ 1

Вам действительно не нужен jQuery для этого:

var doc = document.getElementById('iframe').contentWindow.document;
doc.open();
doc.write('Test');
doc.close();

jsFiddle Demo

Если вам абсолютно необходимо использовать jQuery, вы должны использовать contents():

var $iframe = $('#iframe');
$iframe.ready(function() {
    $iframe.contents().find("body").append('Test');
});

jsFiddle Demo

Не забывайте, что если вы используете jQuery, вам нужно подключиться к функции DOMReady следующим образом:

$(function() {  
    var $iframe = $('#iframe');
    $iframe.ready(function() {
        $iframe.contents().find("body").append('Test');
    });
});

Ответ 2

Это должно делать то, что вы хотите:

$("#iframe").ready(function() {
    var body = $("#iframe").contents().find("body");
    body.append('Test');
});

Отметьте JSFiddle для рабочей демонстрации.

Изменить: Конечно, вы можете сделать это в одном стиле:

$("#iframe").contents().find("body").append('Test');

Ответ 3

Вы можете ввести (например) текст из div в iFrame:

var $iframe = $('#iframe');
$iframe.ready(function() {
    $iframe.contents().find("body").append($('#mytext'));
});

и divs:

<iframe id="iframe"></iframe>
<div id="mytext">Hello!</div>

и JSFiddle demo: ссылка

Ответ 4

Если вы хотите, чтобы все CSS на вашей веб-странице в вашем IFrame, попробуйте следующее:

var
    // Create a clone of the web-page head
    headClone = $('head')
                   .clone(),

    // Find the head of the the iFrame we are looking for
    iFrameHead = $('#iframe')
                    .contents()
                    .find('head');

// Replace 'iFrameHead with your Web page 'head'
iFrameHead
    .replaceWith(headClone);

// You should now have all the Web page CSS in the Iframe

Удачи.