Вставка текста в Редактор TinyMCE, где находится курсор
Я пытался вставить текст в Редактор TinyMCE в сфокусированном элементе абзаца (<p>
) именно там, где курсор, но не повезло!!
var elem = tinyMCE.activeEditor.dom.get('tinymce');
var child = elem.firstChild;
while (child) {
if (child.focused) {
$(child).insertAtCaret("some text");
}
child = child.nextSibling;
}
Если кто-нибудь имеет представление о том, как решить эту я буду очень благодарен.
3 ответов
вы должны использовать команду mceInsertContent
.
Вижу документация TinyMCE.
tinymce.activeEditor.execCommand('mceInsertContent', false, "some text");
приведенный выше ответ хорош, но стоит отметить, что его можно использовать для вставки любого HTML.
например:
tinymce.activeEditor.execCommand('mceInsertContent', false, " <b>bolded text</b> ");
вставить выделенный текст в текущей позиции курсора.
некоторые другие интересные наблюдения:
mceInsertRawHTML также работает, но имеет тенденцию ставить курсор в начале текущей строки в моей версии tinyMCE, но ymmv.
mceReplaceContent работает также, но в моем случае не работал хорошо, когда курсор находился в конце текущего содержимого.
еще раз, см. документация для получения дополнительной информации.
при использовании всплывающего окна, вы можете использовать:
tinyMCEPopup.editor.execCommand('mceInsertLink', false, 'some content goes here');
// mceInsertLink вставляет содержимое в текущую позицию курсора или курсора. // Если редактор не находится в фокусе, вставка будет в самой первой строке содержимого в Редакторе.
если вы хотите вставить HTML-теги и переменные JavaScript, вы можете использовать, например:
<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>
если вы находитесь в файле PHP, вы можете использовать ту же стратегию, просто используйте PHP вместо JavaScript, для пример:
<script type='text/javascript'>
tinyMCEPopup.editor.execCommand('mceInsertContent', false,
'<span >[' + <?php echo $my_php_var; ?> +']</span>');
</script>
вы также можете назначить переменные PHP (при условии, что вы находитесь внутри .php-файл) к переменным Javascript и использовать их в Редакторе вставки контента, например:
<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>