如何在TinyMCE textarea中的初始文本中添加文本?

时间:2018-01-04 16:30:36

标签: jquery tinymce

当我初始化时,我有一个初始模板,我有几个段落,我需要在其中一个上添加一些文字。

在我的文本区域模板上,我有类似这样的内容:

<p>bla bla bla bla bla</p>
<p>bla bla bla bla bla <span id="newText"></span></p>
<p>bla bla bla bla bla</p>

使用jquery我尝试这样的事情:

$("span#newText").append("new text");

但它不起作用。如果我在控制台浏览器上执行此命令,我可以在textarea上看到新文本。

这可能吗?

3 个答案:

答案 0 :(得分:0)

你在哪里写jQuery脚本?你必须把它放在textarea之后......或者你可以使用类似的东西:

$(document).ready(function() {
    $("span#newText").append("new text");
});

答案 1 :(得分:0)

即时通讯使用twig(symfony),我把这个脚本放在树枝文件的底部。

我真的使用&#34;更改&#34;选择标记的事件。我有更多的脚本,比如datepicker和modernizr。

这个树枝是一个带有2个输入,一个选择,带有模板的textarea和一个提交按钮的表单。

我想要做的就是当我更改select上的选项时,将值添加到textarea的中间。

答案 2 :(得分:0)

如果您已在textarea上初始化TinyMCE,则更新底层textarea的内容将不会更新编辑器。当您第一次调用init时,textarea中的任何HTML都会被加载到TinyMCE中,但是如果您基于类似document.ready()的内容更新textarea,那么编辑器已经处于初始化过程并完成查看textarea。

将内容加载到编辑器中的最佳方法是使用TinyMCE的init API:

tinymce.init({
   selector: "#myTextarea",
   ...
   setup: function (editor) {
       editor.on('init', function () {
           editor.setContent('This is the content to load into the editor');
       }
   }
});

在TinyMCE本身已经初始化之前,init调用不会触发(这通常在document.ready()之后为真),因此在那时你可以传入你想要的任何数据。由于TinyMCE init是Javascript,你当然可以传入一个包含相关HTML的变量,而不是我示例中的硬编码字符串。

更新: 根据您的评论,请参阅此更新的JS小提琴:http://jsfiddle.net/4m69mjjx/4/

您需要做的就是使用适当的TinyMCE API根据选择列表的值插入HTML:

$('select').change(function() {
    tinymce.get('textbox').insertContent(this.value);  
});