如何在javascript事件的触发器上填充一些内容?

时间:2012-07-17 10:56:59

标签: javascript tinymce wysiwyg

我想在javascript中使用selectbox的onchange事件触发器中的一些内容填充tinymce body。我尝试了一些东西,但确实如此 不适合我。请指导我正确的方向。 这是我在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体内。我不确定我在这里缺少什么?

3 个答案:

答案 0 :(得分:2)

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

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

请参阅:Here for More

答案 1 :(得分:2)

Tinymce与textarea不相同。在编辑器的初始化时,创建了一个可信的iframe。这个iframe保存编辑器内容,并不时写回编辑器源html元素(在您的情况下是textarea)。要设置编辑器内容,您需要使用tinymce setContent函数。我也将展示替代方案:

 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';
 }

答案 2 :(得分:0)

尝试

tinyMCE.activeEditor.setContent("MyNewContent");