TinyMCE初始化后使用javascript设置textarea值

TinyMCE初始化后使用javascript设置textarea值,javascript,html,tinymce,textarea,Javascript,Html,Tinymce,Textarea,我有一个文本区,我正在该文本区使用tinyMCE 我实际上在做的是,当页面打开时,我用一些文本填充textarea,然后初始化tinyMCE 问题是,当我试图在tinyMCE初始化后更改textarea的值时,什么也没有发生 这里有一个例子 创建文本区域: <textarea style="width: 95%;" name="title" id="title"></textarea> 初始化tinyMCE tinyMCE.init({ // Gen

我有一个文本区,我正在该文本区使用tinyMCE

我实际上在做的是,当页面打开时,我用一些文本填充textarea,然后初始化tinyMCE

问题是,当我试图在tinyMCE初始化后更改textarea的值时,什么也没有发生

这里有一个例子

  • 创建文本区域:

    <textarea style="width: 95%;" name="title"  id="title"></textarea>
    
  • 初始化tinyMCE

    tinyMCE.init({
            // General options
            mode : "specific_textareas",
            theme : "advanced",
            width: "100%",
            plugins : "pagebreak,paste,fullscreen,visualchars",
    
            // Theme options
            theme_advanced_buttons1 : "code,|,bold,italic,underline,|,sub,sup,|,charmap,|,fullscreen,|,bullist,numlist,|,pasteword",
            theme_advanced_buttons2 :"",
            theme_advanced_buttons3 :"",
            theme_advanced_buttons4 :"",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",
            valid_elements : "i,sub,sup",
            invalid_elements : "p, script",
            editor_deselector : "mceOthers"
        });
    
  • 我想更改textview的内容(但它不起作用)

  • 我试着在tinyMCE中使用与以前相同的方法

        $('#title').html("someModifiedText"); // does not work
    
    我还尝试删除tinyMCE:

        if(tinyMCE.getInstanceById('title'))
        removeTinyMCE("title");
    

    }

    要重复使用:

        $('#title').html("someModifiedText"); // does not work
    

    我没有主意了。。。非常感谢您的帮助……

    这里的问题是,如果您在文本区域中输入文本或html,您将看不到任何内容。 tinymce初始化时,文本区域将隐藏。然后您会看到一个可编辑内容的iframe,用于编辑内容并设置内容样式。有几个事件会导致tinymce将其内容写入编辑器的html源元素(在您的示例中是您的textarea)

    如果要设置编辑器的内容(可见),则需要调用

    tinymce.get('title').setContent('<p>This is my new content!</p>');
    
    tinymce.get('title').setContent('这是我的新内容!

    ');
    您还可以使用以下命令直接访问dom元素

    tinymce.get('title').getBody().innerHTML = '<p>This is my new content!</p>';
    
    tinymce.get('title').getBody().innerHTML='这是我的新内容

    ",;
    或者使用jQuery

    $(tinymce.get('title').getBody()).html('<p>This is my new content!</p>');
    
    $(tinymce.get('title').getBody()).html(“这是我的新内容!

    ”);
    这对我很有用。只需将它放在html代码中,而不是放在tinymce中

        <textarea> html CONTENT</textarea>
    
    html内容
    
    这对我来说很简单

    $("#description").val(content);
    

    您可以使用
    tinyMCE.activeEditor.setContent('somehtml')

    {{html\u entity\u decode($yourstringdata)}
    

    这对我来说很有用,解码html数据并将其放在开始和结束文本区域标记之间。

    我通过确保在文档准备好后完成
    设置内容
    解决了同样的问题,所以首先

    script(type="text/javascript").
      tinymce.init({
        selector: '#title',
        height: 350,
        menubar: false
      });
    
    然后

    script(type='text/javascript')。
    $(文档).ready(函数(){
    tinymce.get('title').setContent('someText是html');
    })
    

    上面是帕格的代码,但关键是——如前所述——将其加载到文档准备就绪。

    再次感谢Thariama,我在这里遇到一个错误:tinymce.get('title')未定义请参阅。@goldenparrot,谢谢,我已经尝试过了,但仍然存在相同的问题。您需要使用您的textareas id,但是您也可以使用tinymce.activeEditor或tinymce.editors[0]setcontent对我不起作用,但是setcontent对我起作用(大写字母“C”),如果您觉得这个问题是重复的,应该将其标记为重复问题。请不要发布指向其他堆栈溢出问题的链接作为答案。抱歉,没有注意到同一用户的帖子。谢谢你提供的信息。很好的解决方案!!这个答案应该是公认的答案。简单的伟大解决方案!谢谢@ryanmonrealth这个问题是关于以一种特定的方式使用tinyMCE,但这里给出的解决方案只是说,不要使用tinyMCE,这根本无助于回答问题。
    $("#description").val(content);
    
    <textarea id="content" name="content">{{html_entity_decode($yourstringdata)}}</textarea>
    
    script(type="text/javascript").
      tinymce.init({
        selector: '#title',
        height: 350,
        menubar: false
      });
    
    script(type='text/javascript').
      $(document).ready(function(){
        tinymce.get('title').setContent('<span>someText</span> is html');
      })