jQuery:改变iframe内容

时间:2013-05-23 01:21:04

标签: jquery iframe wysihtml5

据我所知,这段代码应该有效,但事实并非如此,而且我完全难过了。有什么想法吗?

的jQuery

$('.article_chooser').click(function() {
    var src = $(this).attr('value');
$("#doc_edits_attributes_0_body").parent("iframe html body").html($("#article"+src).html());
console.log($("#doc_edits_attributes_0_body").parent("iframe html body").html());
});

HTML

<textarea class="editable_areas" cols="40" id="doc_edits_attributes_0_body" name="doc[edits_attributes][0][body]" rows="20" style="display: none;"></textarea>
<iframe class="wysihtml5-sandbox" security="restricted" allowtransparency="true" frameborder="0" width="0" height="0" marginwidth="0" marginheight="0">
    <html>
        <body marginwidth="0" marginheight="0" contenteditable="true" class="editable_areas wysihtml5-editor" spellcheck="true">
        </body>
    </html>
</iframe>

干杯!

2 个答案:

答案 0 :(得分:9)

要修改iframe的内容,您必须在iframe中调用body标记:

<iframe class="wysihtml5-sandbox" security="restricted" allowtransparency="true" frameborder="0" width="0" height="0" marginwidth="0" marginheight="0" id="iframe">
    <html>
        <body marginwidth="0" marginheight="0" contenteditable="true" class="editable_areas wysihtml5-editor" spellcheck="true">
        </body>
    </html>
</iframe>

<script type="text/javascript">
$(document).ready(function() {
    $('#iframe').contents().find('body').html('New Content');
});
</script>

答案 1 :(得分:2)

wysihtml5插件有API,您可以使用getValue方法:

var value = editorInstance.getValue();

或者,如果要设置值,可以使用setValue方法:

editorInstance.setValue('a string');

或者,如果您想要附加html内容,可以使用.exec()方法:

editorInstance.composer.commands.exec("insertHTML", "<p>bar</p>");