web-dev-qa-db-ja.com

TinyMCE 4-remove()またはdestroy()

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

ただし、編集可能なコンテンツはそのままにします

私は試した :

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

注意してください:

私のエディタークラスは.editable、そして、私のページには複数の編集者がいます。

27
user007

エディターIDが必要です(通常、エディターのHTMLルート要素ID(ほとんどの場合、textarea)と同じです)。

例:

tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id');
20
Thariama

同じ問題がありました。 v4では、上記のすべての提案はうまくいきませんでしたが、これはうまくいきました。

tinymce.remove("div.editable");

... regenerated HTML dynamicaly ...

tinymce.init(...);

私はインラインエディターを使用します:

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"});

これが役に立てば幸いです

39
assassinatorr

TinyMceのjQueryバージョンを使用している人がここに到着した場合に備えて、代わりに以下を使用してインスタンスを削除します。

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

次のコードは動作しています

tinymce.get(id).remove();
13
nikmauro

単に使用する

tinymce.remove()

すべてのエディターを削除します。

8
Janak Bhatta

textareaにidが指定されている場合、tinyMCEは、selectorパラメーターを使用してエディターを特定の要素に適用した場合でも、何らかの奇妙な理由でそれを使用します。このIDは内部配列で使用されます-tinyMCE.editorsはクリアされません(tinymce.execCommand('mceRemoveControl', true, [id])を使用するとクリアされません、removeは実際にeditorsを削除しますtinyMCEが再び適用されるのを防ぎます)。そのため、tinyMCEが適用された動的コンテンツがある場合、一度動作しますが、二度と動作しません。これを解決するには、delete tinyMCE.editors[$(node).getAttribute('id')]ごとにこの配列を手動でクリーニングする必要があります

3
eithed

tinymce.EditorManager.remove()これは私のために働いていました

2
george

TinyMCEのインスタンスが複数ある場合は、次のコードスニペットを使用して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

パーティーに少し遅れましたが、最近angularプロジェクトにtinyMCE jQueryバージョンを追加しました。いくつかの理由で、angularサードパーティコードを使用したくありませんでした。 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);
}
1
JensB

TiyMCE.init({})fuctionを使用すると、@ nikmauroの回答が機能するため、ページをアンロードするたびに、tinymce.get( "real_element_id")。remove()をトリガーするだけです。

その方法は私には有効です。

ところで、私はこのバージョンを面白い

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

0
null_logic
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
Mem Maina

呼び出し時にエラーが発生していました
elementReference.destroy() // destroyはdojo関数です
そのコードを次のように置き換えました
elementReference.domNode.remove()
tinymce.min.jsも使用しており、NS_ERROR_UNEXPECTEDを提供していました

0

偽のWebサイト

TinyMCEは、既にwindow.scripts。対応するエントリを削除すると、TinyMCEはそのままのドキュメントのように動作します。

function cleanTinyMCE() {
  for (var i=0; i < window.scripts.length; i++) {
    if (window.scripts[i].match('.*tinymce.*js.*')){
      delete window.scripts[i];
      return;
    }
  }
}
0
Peter Rader

編集可能なすべてのテキストエリアを削除するには、このコードを使用するだけです。

tinyMCE.remove( "。editable");

ここでtinyMCEに関する詳細情報を削除: http://archive.tinymce.com/wiki.php/api4:method.tinymce.EditorManager.remove.static

0