使用jQuery将HTML附加到iframe

时间:2014-06-18 18:23:06

标签: javascript jquery html css iframe

我已经尝试了this,但它没有用。

这是我的代码:JSFiddle

<script src='jquery.js' type='text/javascript'></script>
<div id="body">
<textarea id="html"></textarea>
<textarea id="javascript"></textarea>
<textarea id="css"></textarea>
<iframe id='result'>
</iframe>
</div>
<script>
    var iframe_ = $("iframe#result")[0].contentDocument.document;
    console.log(iframe_);
    var iframe = $("body", iframe_);
    var script = document.createElement( 'script' );
    script.type = 'text/javascript';
    iframe.append(script)
    iframe.append("<style type='text/css'></style><div id='r'></div>");
    $("div#body").css({
        background: "#f0f0f0",
        padding: "5px",
        width: "80%"
    });
    $("iframe#result, textarea#html, textarea#css, textarea#javascript").css({
        width: "45%",
        margin: "2.5px",
        height: "250px",
        border: "1px solid #ccc",
        resize: "none",
        background: "#fff"
    }).on("keyup", function(){
        iframe.find("script").text = $("textarea#javascript").val();
        iframe.find("style").html($("textarea#css").val());
        iframe.find("div#r").html($("textarea#html").val());
    });
</script>

我的问题是我想将html附加到iframe但它无效。它始终将html附加到iframe之外。

1 个答案:

答案 0 :(得分:2)

$("iframe#result")[0].contentDocument.document返回undefined。

$("iframe#result")[0].contentDocument would be correct

PS:$("iframe#result").contents().find("body") works as well