TinyMCE editor。 tinymceエディターを削除または破棄したい(ページに複数のエディターが含まれている)。また、tinyMCEによって追加されたクラスとIDも削除します。
ただし、編集可能なコンテンツはそのままにします
私は試した :
tinymce.remove()
tinymce.destroy()
tinymce.execCommand('mceRemoveControl',true,'.editable');
注意してください:
私のエディタークラスは.editable
、そして、私のページには複数の編集者がいます。
エディターIDが必要です(通常、エディターのHTMLルート要素ID(ほとんどの場合、textarea)と同じです)。
例:
tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id');
同じ問題がありました。 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"});
これが役に立てば幸いです
TinyMceのjQueryバージョンを使用している人がここに到着した場合に備えて、代わりに以下を使用してインスタンスを削除します。
$("#textarea_id").tinymce().remove();
次のコードは動作しています
tinymce.get(id).remove();
単に使用する
tinymce.remove()
すべてのエディターを削除します。
textarea
にidが指定されている場合、tinyMCEは、selector
パラメーターを使用してエディターを特定の要素に適用した場合でも、何らかの奇妙な理由でそれを使用します。このIDは内部配列で使用されます-tinyMCE.editors
はクリアされません(tinymce.execCommand('mceRemoveControl', true, [id])
を使用するとクリアされません、remove
は実際にeditors
を削除しますtinyMCEが再び適用されるのを防ぎます)。そのため、tinyMCEが適用された動的コンテンツがある場合、一度動作しますが、二度と動作しません。これを解決するには、delete tinyMCE.editors[$(node).getAttribute('id')]
ごとにこの配列を手動でクリーニングする必要があります
tinymce.EditorManager.remove()これは私のために働いていました
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コンテンツが読み込まれる前に使用します。
パーティーに少し遅れましたが、最近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);
}
TiyMCE.init({})fuctionを使用すると、@ nikmauroの回答が機能するため、ページをアンロードするたびに、tinymce.get( "real_element_id")。remove()をトリガーするだけです。
その方法は私には有効です。
ところで、私はこのバージョンを面白い
//tinymce.cachefly.net/4.1/tinymce.min.js
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'});
}
呼び出し時にエラーが発生していましたelementReference.destroy()
// destroyはdojo関数です
そのコードを次のように置き換えましたelementReference.domNode.remove()
tinymce.min.jsも使用しており、NS_ERROR_UNEXPECTEDを提供していました
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;
}
}
}
編集可能なすべてのテキストエリアを削除するには、このコードを使用するだけです。
tinyMCE.remove( "。editable");
ここでtinyMCEに関する詳細情報を削除: http://archive.tinymce.com/wiki.php/api4:method.tinymce.EditorManager.remove.static