2010-12-29 9 views
22

でTinyMCEをテキストエリアの内容を取得するにはどのように私たちはJavaScriptを

答えて

12

があなたのMCEのTextAreaインスタンスがあると言うことができますJavaScriptでTinyMCEをテキストエリアの内容を取得する方法、コンテンツの配列を持っています次のようにコンテンツを取得:

var content = tinyMCE.getContent('editor1'); 

あなたが1つのページにMCEエディターの複数のインスタンスを持っている意味、あなたは、このアプローチを試しコンテンツ取得したい場合:

var inst, contents = new Object(); 
for (inst in tinyMCE.editors) { 
    if (tinyMCE.editors[inst].getContent) 
     contents[inst] = tinyMCE.editors[inst].getContent(); 
} 

上記のコードは、あなたが使用することができ、アレイ

+2

この回答はTinyMCEの古いバージョンの可能性が高いです。最新(4.x)でこれを行うには、@ jqpressの答えが正しいです。 –

9

に各エディタの内容を追加します。

tinymce.get(editorid).getContent(); 
+0

そうです。 – mghhgm

11

私は同じ問題を抱えていました。私はこのコードを使用して解決した:

tinyMCE.get('editor1').getContent(); 

出典:

// Get the HTML contents of the currently active editor 
tinyMCE.activeEditor.getContent(); 

// Get the raw contents of the currently active editor 
tinyMCE.activeEditor.getContent({format : 'raw'}); 

// Get content of a specific editor: 
tinyMCE.get('content id').getContent() 

activeEditorが現在のエディタですが、私はtinyMCE.getを使う( 'editor1':spocke is the author

0

、上記のどれも働いていないので、私はこの問題を回避しました:

HTMLコード:

<div id="wrapper"> 
    <textarea id="editable_container" name="editable_container"></textarea> 
</div> 

のjQueryコード:

var iframe = $('#editable_container_ifr'); 
var editorContent = $('#tinymce[data-id="editable_container"]', iframe.contents()).html(); 
console.log(editorContent); 

ここで、editable_containerは、私の小さなMCEエディタのプレースホルダテキストエリアです。編集可能な領域のiframe IDは、プレースホルダのIDに_ifrの接尾辞があり、content-editableコンテナ(書式付きテキストを含む)には、プレースホルダのidのdata-id属性を持つIDがtinymceです。

-2

あなたはより多くの精通(とjqueryのラッパーを使用している)している場合は、この使用してこの操作を行うことができます(editor1は)あなたのセレクタである

$('#editor1').tinymce().getContent(); 

を。

+0

動作していないようです。 – Andy