将内容插入到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
函数,所以我不明白为什么它没有插入。
你真的不需要jQuery的:
var doc = document.getElementById('iframe').contentWindow.document; doc.open(); doc.write('Test'); doc.close();
jsFiddle演示
如果你绝对必须使用jQuery,你应该使用contents()
:
var $iframe = $('#iframe'); $iframe.ready(function() { $iframe.contents().find("body").append('Test'); });
jsFiddle演示
请不要忘记,如果您使用的是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工作演示。
编辑:你当然可以做到一线式:
$("#iframe").contents().find("body").append('Test');
您可以input(例如)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演示: 链接
如果你想在你的网页上的所有的CSS
,你可以试试这个:
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
祝你好运。