将html放在iframe中(使用javascript)

时间:2009-03-06 23:30:12

标签: javascript jquery html iframe

我可以创建一个空的iframe作为占位符,以便稍后将html插入其中吗?

换句话说,假设我有一个带id的空iframe,

如何在其中插入html?

我正在使用jquery,如果这样可以更容易。

6 个答案:

答案 0 :(得分:37)

你也可以在没有jQuery的情况下做到这一点:

var iframe = document.getElementById('iframeID');
iframe = iframe.contentWindow || ( iframe.contentDocument.document || iframe.contentDocument);

iframe.document.open();
iframe.document.write('Hello World!');
iframe.document.close();

jQuery的html从插入的HTML中删除了body,html和head标签。

答案 1 :(得分:36)

查看此页面的来源:http://mg.to/test/dynaframe.html它似乎完全符合您的要求。

$(function() {
    var $frame = $('<iframe style="width:200px; height:100px;">');
    $('body').html( $frame );
    setTimeout( function() {
        var doc = $frame[0].contentWindow.document;
        var $body = $('body',doc);
        $body.html('<h1>Test</h1>');
    }, 1 );
});

答案 2 :(得分:8)

不,不是。您可以像这样修改脚本:

$(function() {
    var $frame = $('iframe');
    setTimeout( function() {
            var doc = $frame[0].contentWindow.document;
            var $body = $('body',doc);
            $body.html('<h1>Test</h1>');
    }, 1 );
});

答案 3 :(得分:3)

iframeElementContainer =   document.getElementById('BOX_IFRAME').contentDocument;
iframeElementContainer.open();
iframeElementContainer.writeln("<html><body>hello</body></html>");
iframeElementContainer.close();

答案 4 :(得分:1)

是的我知道这是可能的,但主要的问题是我们无法处理来自外部的框架我已经加载了其他东西。

$(function() {
        var $frame = $('<iframe style="width:200px; height:100px;">');
        $('body').html( $frame );
        setTimeout( function() {
                var doc = $frame[0].contentWindow.document;
                var $body = $('body',doc);
                $body.html('<h1>Test</h1>');
        }, 1 );
});

但如果我们以

开头
<iframe src="http:/www.hamrobrt.com">
<---Your Script to put as you like--->

然后就不可能打出来了。

答案 5 :(得分:0)

  

我有同样的问题,我必须在没有iframe的SRC属性的数据库中动态显示iframe中的html代码片段,我修复了以下代码的相同问题

     

我希望这能帮助那些有同样要求的人。

jsfiddle example here

HTML:

<iframe src="" frameborder="0" class="iframe"></iframe>
<iframe src="" frameborder="0" class="iframe"></iframe>
<iframe src="" frameborder="0" class="iframe"></iframe>
<iframe src="" frameborder="0" class="iframe"></iframe>

JS

<script>
var doc,$body;
var txt = Array(
            '<style>body{background-color:grey} h1{background-color:red;font-weight:900}</style><h1>Cool!!! this is text for</h1><p>First Iframe</p>',
            '<style>body{background-color:pink}h1{background-color:green;font-weight:200}</style><h1>Cool This is Text for</h1><p> second Iframe',
            '<style>body{background-color:yellow}h1{font-weight:400}</style><h1>Cool..... This is text FOR : </h1> <div>3rd Iframe</div>',
            '<style>body{background-color:blue} h1{font-weight:400}</style><h1>Cool This is text for Fourth iframe</h1>'
            );
$('.iframe').each(function(index,value){
    doc = $('iframe')[index].contentWindow.document;
        $body = $('body',doc);
        $body.html(txt[index]);
});
</script>