Entfernen TinyMCE Kontrolle und re-hinzufügen
Ich habe eine js-Anwendung, die nie lädt die Seite, also bei der Navigation muss ich entfernen TinyMCE-Editor-Steuerelemente vollständig, und dann ich möchte zu re-initialisieren bei der Navigation zu einem Gebiet, die es braucht. Ich habe versucht, die akzeptierte Antwort auf diese Frage, aber es scheint sich nichts zu tun.
Wie Entferne ich den tinyMCE und dann wieder neu hinzufügen?
tinymce.EditorManager.execCommand('mceRemoveControl',true, editor_id);
und meine konkreten Umsetzung:
//if I throw an alert here, it does get called, so I know it's not null
if (tinyMCE.getInstanceById("main-text"))
tinyMCE.EditorManager.execCommand('mceRemoveControl', true, "main-text");
Ich habe auch versucht
tinyMCE.remove( tinyMCE.getInstanceById("main-text"));
//AND
tinyMCE.remove( "main-text");
Weiß ich, dass das statement wird ausgeführt, wenn ich ein alert in der bedingten... ich weiß, das ist die richtige ID-- gibt es etwas anderes, begraben in der API, die mir fehlt? Dies ist Nicht mit der jQuery version. Der editor besteht auch nach entfernen versuchen, und ich habe sogar einen neuen bekommen, mit der gleichen ID, wenn ich re-init ist es, die durch das navigieren wieder in den Zustand mit der form.
EDIT: die Lösung unten funktioniert nicht in der aktuellen build 3.5b3, nur in 3.4.9. Es gibt einen bug, wo t 'undefined'
Nur für den Fall, dies ist der relevante Teil der DOM nach der init.
<textarea id="main-text" style="display: none;" aria-hidden="true"></textarea>
<span id="main-text_parent" class="mceEditor defaultSkin" role="application" aria-labelledby="main-text_voice" style="display: inherit;">
<span id="main-text_voice" class="mceVoiceLabel" style="display:none;">Rich Text Area</span>
<table id="main-text_tbl" class="mceLayout" cellspacing="0" cellpadding="0" role="presentation" style="width: 100%; height: 400px;">
<tbody>
<tr class="mceFirst" role="presentation">
<td class="mceToolbar mceLeft mceFirst mceLast" role="presentation">
<div id="main-text_toolbargroup" aria-labelledby="main-text_toolbargroup_voice" role="group" tabindex="-1">
<span role="application">
</div>
<a onfocus="tinyMCE.getInstanceById('main-text').focus();" title="Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X" accesskey="z" href="#"></a>
</td>
</tr>
<tr>
<tr class="mceLast">
</tbody>
</table>
</span>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe dieses ein paar mal. Um es zu lösen ich sicherstellen, dass der tinyMCe-Editor-Steuerelement nicht den Fokus haben (verursacht einige Fehler in einigen Browsern), entfernen Sie den tinyMCE Kontrolle, und entfernen Sie den text-Bereich, in dem die Kontrolle zugeordnet wurde.
Hier ist der relevante code:
Jedem, der über diesen post. Jetzt tinymce 4.X Unterstützung für das Entfernen eines Editors oder Editoren Formular-Seite nur durch Aufruf der remove-Funktion.
http://www.tinymce.com/wiki.php/api4:method.tinymce.remove