【问题标题】:Append HTML to an iframe using jQuery使用 jQuery 将 HTML 附加到 iframe
【发布时间】:2014-08-09 03:54:54
【问题描述】:

我试过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 之外。

【问题讨论】:

  • 这里有一个很棒的教程,告诉你如何做你想做的事:code.tutsplus.com/tutorials/…。非常简洁易懂……在我的一个项目中使用它。
  • var iframe = $("iframe#result").contents().find("body");
  • 小心添加新元素的方式 - 您当前的设置看起来会不断添加新块,而不是更新现有块,这会导致您进一步出错

标签: javascript jquery html css iframe


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    相关资源
    最近更新 更多