获取 iframe 内容作为字符串
get iframe content as string
我使用 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 体内的所有内容作为 String 获取。我测试了 $("#editor").contents().find("body")
,但是这个 return 我是一个对象,而不是字符串。也试过$("#editor").contents().find("body").outerHTML
,但是这个return我undefined
。我怎样才能做到这一点?请帮我。谢谢你的时间。
编辑:
我使用 SCEditor 插件。正如 Ramesh 所说,我使用了 val()
方法,但在 firebug 控制台中仍然 return 我 (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()
并且它起作用了。
jQuery 对象是类似对象的数组,您可以通过索引访问 innerHTML
属性(查看控制台输出):
console.log($('iframe')[0].innerHTML);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="editor">
<iframe>
<!DOCTYPE html>
<html>
<head></head>
<body>
some important content here and I need to get them
</body>
</html>
</iframe>
</div>
尝试:
var contain = document.getElementById('iframe').contentWindow.document.body.innerHTML ;
// Use contain where need .
注意:仅当 iframe
来源位于同一域中时才有效。
希望对您有所帮助:
// Gives you the DOM element without the outside wrapper you want
$('.classSelector').html()
// Gives you the inside wrapper as well
$('.classSelector')[0].innerHTML
在SCEditor中获取富文本框的值,必须使用.val
方法
val() Since: 1.3.5
Gets the current value of the editor.
This will return the filtered HTML from the WYSIWYG editor or the
unfiltered contents of the source editor.
If using a plugin that filters the HTML like the BBCode plugin, this
will return the filtered HTML or BBCode in the case of the BBCode
plugin.
Syntax
var val = instance.val();
Return Type: String
The filtered value of the editor
我使用 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 体内的所有内容作为 String 获取。我测试了 $("#editor").contents().find("body")
,但是这个 return 我是一个对象,而不是字符串。也试过$("#editor").contents().find("body").outerHTML
,但是这个return我undefined
。我怎样才能做到这一点?请帮我。谢谢你的时间。
编辑:
我使用 SCEditor 插件。正如 Ramesh 所说,我使用了 val()
方法,但在 firebug 控制台中仍然 return 我 (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()
并且它起作用了。
jQuery 对象是类似对象的数组,您可以通过索引访问 innerHTML
属性(查看控制台输出):
console.log($('iframe')[0].innerHTML);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="editor">
<iframe>
<!DOCTYPE html>
<html>
<head></head>
<body>
some important content here and I need to get them
</body>
</html>
</iframe>
</div>
尝试:
var contain = document.getElementById('iframe').contentWindow.document.body.innerHTML ;
// Use contain where need .
注意:仅当 iframe
来源位于同一域中时才有效。
希望对您有所帮助:
// Gives you the DOM element without the outside wrapper you want
$('.classSelector').html()
// Gives you the inside wrapper as well
$('.classSelector')[0].innerHTML
在SCEditor中获取富文本框的值,必须使用.val
方法
val() Since: 1.3.5
Gets the current value of the editor.
This will return the filtered HTML from the WYSIWYG editor or the unfiltered contents of the source editor.
If using a plugin that filters the HTML like the BBCode plugin, this will return the filtered HTML or BBCode in the case of the BBCode plugin.
Syntax
var val = instance.val();
Return Type:
String
The filtered value of the editor