2

リッチ テキスト エディターを生成するために 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")たが、これは文字列ではなくオブジェクトを返します。も試し$("#editor").contents().find("body").outerHTMLましたが、これは私を返しますundefined。これどうやってするの?私を助けてください。お時間をいただきありがとうございます。

編集:

SCEditorプラグインを使用しています。Ramesh が言ったように、val()メソッドを使用しましたが、それでも(an empty string)firebug コンソールに返されます。これが私のコードです:

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

4 に答える 4

1

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>

于 2015-05-08T05:30:20.010 に答える
1

SCEditor でリッチ テキスト ボックスの値を取得するには、次の.valメソッドを使用する必要があります。

val() 以降: 1.3.5

エディターの現在の値を取得します。

これにより、WYSIWYG エディターからフィルター処理された HTML、またはソース エディターのフィルター処理されていないコンテンツが返されます。

BBCode プラグインのように HTML をフィルタリングするプラグインを使用している場合、BBCode プラグインの場合はフィルタリングされた HTML または BBCode が返されます。

構文

var val = instance.val();

返品の種類:String

エディターのフィルタリングされた値

于 2015-05-08T06:41:52.400 に答える
1

試す :

var contain = document.getElementById('iframe').contentWindow.document.body.innerHTML ;
// Use contain where need .

注 :iframeソースが同じドメインにある場合にのみ機能します。

于 2015-05-08T05:36:16.170 に答える
0

これが役立つことを願っています:

// Gives you the DOM element without the outside wrapper you want
$('.classSelector').html()

// Gives you the inside wrapper as well
$('.classSelector')[0].innerHTML
于 2015-05-08T06:03:03.997 に答える