「空白」のiFrameにコンテンツを挿入しようとしていますが、何も挿入されていません。
HTML:
<iframe id="iframe"></iframe>
JS:
$("#iframe").ready(function() {
var $doc = $("#iframe").contentWindow.document;
var $body = $("<body>").text("Test");
$body.insertAfter($doc);
});
ready
関数を呼び出しているため、挿入できない理由がわかりません。
そのためにjQueryは本当に必要ありません。
var doc = document.getElementById('iframe').contentWindow.document;
doc.open();
doc.write('Test');
doc.close();
JQueryを絶対に使用する必要がある場合は、 contents()
を使用する必要があります。
var $iframe = $('#iframe');
$iframe.ready(function() {
$iframe.contents().find("body").append('Test');
});
JQueryを使用している場合は、次のようにDOMReady関数にフックする必要があることを忘れないでください。
$(function() {
var $iframe = $('#iframe');
$iframe.ready(function() {
$iframe.contents().find("body").append('Test');
});
});
これはあなたが望むことをするはずです:
$("#iframe").ready(function() {
var body = $("#iframe").contents().find("body");
body.append('Test');
});
これを確認してください JSFiddle デモ用です。
編集:もちろん、1行のスタイルで行うことができます:
$("#iframe").contents().find("body").append('Test');
CSS
のWebページにあるすべてのIFrame
thatsが必要な場合は、これを試してください。
var headClone, iFrameHead;
// 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
幸運を。
(たとえば)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デモ: link