将iframe内容作为字符串

时间:2015-05-08 05:27:39

标签: javascript jquery iframe rich-text-editor sceditor

我使用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()并且它有效。

4 个答案:

答案 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