我使用jquery插件生成富文本编辑器。该编辑器生成如下结构:
<div id="editor" ... >
...
<iframe>
<!DOCTYPE html>
<html>
<head>...</head>
<body>
//some important content here and I need to get them
</body>
</html>
</iframe>
</div>
现在,我希望将iframe的所有内容都作为字符串。我测试了$("#editor").contents().find("body")
,但这会返回一个对象,而不是字符串。还尝试了$("#editor").contents().find("body").outerHTML
,但这回复了我undefined
。我怎样才能做到这一点?请帮我。谢谢你的时间。
修改
我使用SCEditor插件。正如Ramesh所说,我使用val()
方法,但仍然在firebug控制台中返回(an empty string)
。这是我的代码:
var instance = $("textarea").sceditor({
plugins: "bbcode",
style: "../../editor/minified/jquery.sceditor.default.min.css",
//some othe options
});
$("#save").click(function(){
console.log(instance.val());
});
正如Ramesh所说,我使用$('textarea').sceditor('instance').val()
并且它有效。
答案 0 :(得分:1)
jQuery对象是类似于对象的数组,您可以通过索引访问jre
属性(查看控制台输出):
innerHTML
console.log($('iframe')[0].innerHTML);
答案 1 :(得分:1)
尝试:
var contain = document.getElementById('iframe').contentWindow.document.body.innerHTML ;
// Use contain where need .
注意:仅当iframe
来源位于同一个域中时才有效。
答案 2 :(得分:1)
在SCEditor中获取富文本框的值,您必须使用.val
方法
val()从:1.3.5
获取编辑器的当前值。
这将从WYSIWYG编辑器返回已过滤的HTML或 未经过滤的源代码编辑器内容。
如果使用过滤HTML的插件,就像BBCode插件一样 将在BBCode的情况下返回过滤的HTML或BBCode 插件。
语法
var val = instance.val();
返回类型:
String
编辑器的过滤值
答案 3 :(得分:0)
我希望这会有所帮助:
// Gives you the DOM element without the outside wrapper you want
$('.classSelector').html()
// Gives you the inside wrapper as well
$('.classSelector')[0].innerHTML