it-swarm.com.de

Einfügen von Text in den TinyMCE-Editor, wo sich der Cursor befindet

Ich habe versucht, Text in den TinyMCE-Editor am fokussierten Absatzelement (<p>) genau an der Stelle einzufügen, an der sich der Cursor befindet.

var elem = tinyMCE.activeEditor.dom.get('tinymce');
var child = elem.firstChild;
while (child) {
    if (child.focused) {
        $(child).insertAtCaret("some text");
    }
    child = child.nextSibling;
}

Wenn jemand eine Idee hat, wie ich das lösen kann, bin ich sehr dankbar.

37
Ruba

Sie sollten den Befehl mceInsertContent..__ verwenden. Siehe TinyMCE-Dokumentation .

tinymce.activeEditor.execCommand('mceInsertContent', false, "some text");
82
Magus

Die obige Antwort ist gut, aber es lohnt sich, darauf hinzuweisen, dass damit HTML-Code eingefügt werden kann.

Zum Beispiel:

tinymce.activeEditor.execCommand('mceInsertContent', false, " <b>bolded text</b> ");

fügt an der aktuellen Cursorposition fett gedruckten Text ein. 

Einige andere interessante Beobachtungen:

mceInsertRawHTML funktioniert auch, aber neigt dazu, den Cursor in meiner Version von tinyMCE an den Anfang der aktuellen Zeile zu setzen, aber ymmv. 

mceReplaceContent funktioniert auch, aber in meinem Fall funktionierte es nicht gut, wenn sich der Cursor am Ende des aktuellen Inhalts befand.

Weitere Informationen finden Sie in der Dokumentation .

9
ajl

Wenn Sie ein Popup-Fenster verwenden, können Sie Folgendes verwenden: 

tinyMCEPopup.editor.execCommand('mceInsertLink', false, 'some content goes here');

// mceInsertLink fügt den Inhalt an der aktuellen Cursor- oder Caret-Position ein. // Wenn der Editor nicht im Fokus ist, wird die Einfügung an der ersten Zeile des Editors vorgenommen.

Wenn Sie HTML-Tags und Javascript-Variablen einfügen möchten, können Sie beispielsweise Folgendes verwenden: 

<script type='text/javascript'>

    var my_var= "some value";
    var my_var_two = 99;

    tinyMCEPopup.editor.execCommand('mceInsertLink', false, 
                    '<span >[' + my_var + ', ' + my_var_two + ']</span>');       
    tinyMCEPopup.close(); // too close the popup window

</script>

Wenn Sie sich in einer PHP -Datei befinden, können Sie dieselbe Strategie verwenden. Verwenden Sie einfach PHP anstelle von JavaScript. Beispiel:

<script type='text/javascript'>
    tinyMCEPopup.editor.execCommand('mceInsertContent', false, 
               '<span >[' + <?php echo $my_php_var; ?> +']</span>'); 
</script>

Sie können auch Javascript-Variablen PHP -Variablen zuweisen (vorausgesetzt, Sie befinden sich in einer .php-Datei) und können diese in der Editor-Inhaltseinfügung verwenden. 

<script type='text/javascript'>

    var my_var= "<?php echo $my_php_var; ?>";
    var my_var_two = "<?php echo $my_php_var_two_or_a_function_call; ?>";

    tinyMCEPopup.editor.execCommand('mceInsertLink', false, 
                     '<span >[' + my_var + ', ' + my_var_two + ']</span>');       
    tinyMCEPopup.close(); // too close the popup window

</script>
1
Miloud Eloumri