2013-07-20 14 views
20

私は使用していますTinyMCE editor. tinymceエディタを削除または破棄したいです(ページに複数のエディタが含まれています)。また、tinyMCEによって追加されたクラスとIDも削除します。TinyMCE 4 - remove()またはdestroy()

しかし、私が試した

編集可能な内容を残す:

tinymce.remove() 
tinymce.destroy() 
tinymce.execCommand('mceRemoveControl',true,'.editable'); 

に注意してください。

私のエディタクラスは.editableである、と私は私のページで1つのエディタ、より多くを持っています。

答えて

18

あなたはエディタID(通常はエディタのhtmlルート要素id(ほとんどの場合はテキストエリア)と同じです)が必要です。

例:

tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id'); 
+3

? 。あなたもコードはうまくいきました。これを行う目的は:私の編集可能なdivはajaxを使ってロードされるので、負荷がかかると、そのdivにTinyMceを再バインドする必要があります – user007

+1

これを行う正しい方法はtinymce.execCommand( 'mceAddControl '、true、' my_original_textarea_id '); – Thariama

+0

ありがとう、それは働いています – user007

27

念の誰ではインスタンスを削除する代わりに、次を使用しTinyMCEののjQueryのバージョンを使用している人ここに到着:

$("#textarea_id").tinymce().remove(); 
+3

これは、エディタの最初のインスタンスのみを削除します。セレクタと一致するすべてのインスタンスを削除する必要がある場合は、次のようにする必要があります: '$("。editable "); each(function(){$ this} .tinymce()。remove();});' –

+0

私は "インスタンス"の上に書いていました。もちろん、複数のインスタンスを反復して削除するには、さまざまな方法があります。 Nielsはそのような方法の1つです。 –

+0

私はこれが私のために働いていることを発見しました:tinymce.get( 'textarea_id')。remove(); – nickvans

28

私は同じ問題を抱えていました。 V4ではすべての提案は、上記の私のために動作しませんでしたが、これはやった:

tinymce.remove("div.editable"); 

... regenerated HTML dynamicaly ... 

tinymce.init(...); 

私が使用してインライン編集者:これは

+0

トリックをやった! – behz4d

+0

これはjqueryでのみ動作します。 –

+0

これは、実際にはすべての前記エディタを実際に削除するように動作するとは限りません。場合によってはエラーだけが出力されることもあります。 –

10

を助けた

tinymce.init({ 
    selector: "div.editable", 
    inline: true, 
    plugins: [ 
    "advlist autolink lists link image charmap print preview anchor", 
    "searchreplace visualblocks code fullscreen", 
    "insertdatetime media table contextmenu paste" 
    ], 
    menubar: false, 
    toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"}); 

希望を次のコードが動作している

tinymce.get(id).remove(); 
0

tiyMCE.init({})fuctionを使用している場合、@nikmauroの回答が私に役立ちます。したがって、ページングのすべてのアンロードe、あなたは単にtinymce.get( "real_element_id")をトリガーします。remove();

この方法は私には役に立ちます。

ところで、私はあなたがTinyMCEをの複数のインスタンスを持っている場合は、すべてのインスタンスを閉じるために、次のコードスニペットを使用することができます。このバージョン

//tinymce.cachefly.net/4.1/tinymce.min.js

1

を楽しまTinyMCE:

for (var i = tinymce.editors.length - 1 ; i > -1 ; i--) { 
    var ed_id = tinymce.editors[i].id; 
    tinyMCE.execCommand("mceRemoveEditor", true, ed_id); 
} 

Ajaxコンテンツが読み込まれる前に使用します。

2

tinymce.EditorManager.remove() これは、我々が破壊//
elementReference.destroy()の呼び出しでエラーを取得した私

+0

'tinymce.EditorManager.remove( '。editable')'は私のために働いていました。 – kaelle

0

のために働いていた道場機能
である我々はまた、TinyMCEはを使用していた
elementReference.domNode.remove()
でそのコードを置き換えます.min。js、それは私たちにNS_ERROR_UNEXPECTEDを与えていた

1

パーティーには少し遅れましたが、最近私の角プロジェクトにtinyMCE jQueryバージョンが追加されました。いくつかの理由から、私は第三者コードを使用したくなく、jQueryバージョンを動作させたいだけでした。

ここでは、ng-repeatを使用しても、TinyMCE 4.xを角張って動作させるためのコードを示します。

テキストエリアを「TinyMCEEditorBox」クラスで飾るだけで、更新をもたらすアイテムを削除または追加すると(ng-repeatに追加されるアイテムなど)、このメソッドを呼び出すことができます。

$scope.RebindTinyMCE = function() 
{ 
    var tmceSelector = ".TinyMCEEditorBox"; 

    for (var i = tinymce.editors.length - 1 ; i > -1 ; i--) 
    { 
     tinyMCE.execCommand("mceRemoveEditor", true, tinymce.editors[i].id); 
    } 

    setTimeout(function() { 
     $(tmceSelector).tinymce({ 
      menubar: false, 
      statusbar: false, 
      toolbar: 'bold italic underline | alignleft aligncenter alignright | bullist numlist outdent indent | link', 
     }); 
    }, 50); 
} 
4

単純にすべてのエディタを削除する

tinymce.remove() 

を使用しています。

+3

あなたはその質問を読むことさえしませんでした。それはOPが試みた最初のものです。 – grochmal

1

textareaにidが指定されている場合、selectorパラメータを使用して特定の要素にエディタを適用したとしても、tinyMCEはそれを奇妙な理由で使用することに注意してください。このIDは内部配列tinyMCE.editorsで使用されますが、これはクリアされません(tinymce.execCommand('mceRemoveControl', true, [id])を使用する場合はクリアされません。removeは実際にeditorsを削除し、再度tinyMCEが適用されることを防ぎます)。そのため、tinyMCEを適用した動的コンテンツがある場合は、一度は動作しますが、もう一度は動作しません。これを解決するために、あなたはあなたが必要とするだけで、すべての編集可能なテキストエリア除去するためにこのコードを使用delete tinyMCE.editors[$(node).getAttribute('id')]

0
if (typeof tinyMCE != 'undefined') { 
    if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) { 
     tinyMCE.editors=[]; 
    } 
    tinyMCE.editors=[]; tinymce.init({selector:'textarea', plugins : 'advlist autolink link image lists charmap print preview'}); 
}else{ 
    tinymce.init({selector:'textarea', plugins : 'advlist autolink link image lists charmap print preview'}); 
} 
+0

コードを説明してください –

関連する問題