1

我想在javascript中选择框的onchange事件触发时用一些内容填充tinymce主体。我尝试了一些东西,但它对我不起作用。请指导我正确的方向。这是我在 textarea 上附加 tinymce 的代码

$(function() {
appendTinyMCE();
function appendTinyMCE(){
    tinyMCE.init({

        // General options
        mode : "textareas",
        theme : "advanced",
        plugins : "preview",
        // Theme options
        theme_advanced_buttons1 : "forecolor,backcolor,|,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,|,formatselect,fontselect,fontsizeselect,sub,sup,|,bold,italic,underline,strikethrough",
        theme_advanced_buttons2 : "",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true

});}

});

这是html代码

<td>
        <textarea rows="15" name="MyTinymceContent" cols="90" >MyTestContent</textarea>

现在我想在 javascript 中更改选择框时用新内容填充 tinymce。所以我写了下面的代码片段来改变选择框

 function populateMyTinyMCE() {
  document.form.MyTinymceContent.value ="MyNewContent";
 }

但它并没有将新内容放入tinymce正文中。我不确定我在这里缺少什么?

4

3 回答 3

2

您可以在某些事件触发器上调用以下任何一个:

tinyMCE.get('your_editor').setContent("MyNewContent");
//OR
tinyMCE.activeEditor.setContent('MyNewContent');

见:这里了解更多

于 2012-07-17T11:04:48.360 回答
2

Tinymce 不等于 textarea。在编辑器初始化时,会创建一个 contenteditable iframe。此 iframe 保存编辑器内容并不时被写回编辑器源 html 元素(在您的情况下为 textarea)。要设置编辑器内容,您需要使用 tinymcesetContent函数。我也会展示替代方案:

 function populateMyTinyMCE() {

    var editor = tinymce.editors[0];

    // other ways to get the editor instance
    // editor = tinymce.get('my editor id');
    // editor = tinymce.activeEditor;

    editor.setContent('my new content');

    // alternate way of setting the content
    // editor.getBody().innerHTML = 'my new content';
 }
于 2012-07-17T11:06:14.493 回答
0

尝试

tinyMCE.activeEditor.setContent("MyNewContent"); 
于 2012-07-17T10:59:57.390 回答