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

nkhmeac6  于 9个月前  发布在  Java
关注(0)|答案(7)|浏览(102)

我有一个文本区域,我在那个文本区域上使用tinyMCE。
实际上,我所做的是,当页面打开时,我用一些文本填充textarea,然后初始化tinyMCE。
问题是,当我试图在tinyMCE初始化后更改textarea的值时,什么也没有发生。
这里有一个例子。
1.创建文本区域:

<textarea style="width: 95%;" name="title"  id="title"></textarea>

字符串
1.填充文本区域:

$('#title').html("someText");


1.初始化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"
    });


1.我想改变文本视图的内容(但它不工作)
我已经尝试使用与以前相同的初始化tinyMCE

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


我也试着删除tinyMCE:

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


function removeTinyMCE (dialogName) {
    tinyMCE.execCommand('mceFocus', false, dialogName);
    tinyMCE.execCommand('mceRemoveControl', false, dialogName);


}
和thet重复使用:

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


我没办法了...非常感谢你的帮助...

cs7cruho

cs7cruho1#

这里的问题是,如果你在textarea中输入文本或html,你将看不到任何东西。textarea在tinymce初始化时被隐藏。你看到的是一个内容可编辑的iframe,它用于编辑和样式化内容。有几个事件会导致tinymce将其内容写入编辑器的html源元素(在你的情况下是textarea)。
如果您想设置编辑器的内容(可见),您需要调用类似

tinymce.get('title').setContent('<p>This is my new content!</p>');

字符串
您还可以使用以下命令直接访问dom元素

tinymce.get('title').getBody().innerHTML = '<p>This is my new content!</p>';


使用jQuery

$(tinymce.get('title').getBody()).html('<p>This is my new content!</p>');

5us2dqdw

5us2dqdw2#

您可以使用tinyMCE.activeEditor.setContent('<span>some</span>');
此功能适用于最新版本6.8.2
检查这个答案

72qzrwbm

72qzrwbm3#

简单地说,这对我来说很有效

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

字符串

4nkexdtk

4nkexdtk4#

我通过确保在文档准备好之后完成setContent来解决同样的问题,所以首先;

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


上面是pug的代码,但关键是-如前所述-将其加载到文档就绪。

z9gpfhce

z9gpfhce5#

<textarea id="content" name="content">{{html_entity_decode($yourstringdata)}}</textarea>

字符串
这是我的工作,解码你的html数据,并将其放置在开始和结束textarea标签之间。

axr492tv

axr492tv6#

一旦称之为

tinymce.triggerSave();

字符串
然后tinymce的值将被转换为原始的textarea值。所以可以像从普通textarea获得一样获得它。

xcitsw88

xcitsw887#

这对我很有效。只要把它放在你的html代码中,而不是去tinymce

<textarea> html CONTENT</textarea>

字符串

相关问题