18

我有一些文本区域,它们都使用 tinyMCE。

我想设置特定文本区域的内容,但我找不到如何。

我试过这个:

 tinyMCE.get('title').setContent(selected_article_title);

这是我的文本区域:

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

我不知道为什么这不起作用,我使用的是 tinyMCE 网站http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.setContent中的示例

4

9 回答 9

17

我认为这将解决您的问题

它适用于 TinyMCE v:4。.

// Sets the HTML contents of the activeEditor editor
tinyMCE.activeEditor.setContent('<span>some</span> html');

// Sets the raw contents of the activeEditor editor
tinyMCE.activeEditor.setContent('<span>some</span> html', {format : 'raw'});

// Sets the content of a specific editor (my_editor in this example)
tinyMCE.get('my_editor').setContent(data); // here my_editor is the id of a specific editor

// Sets the bbcode contents of the activeEditor editor if the bbcode plugin was added
tinyMCE.activeEditor.setContent('[b]some[/b] html', {format : 'bbcode'});

代码的链接是TinyMCE setContent

于 2015-12-02T03:02:16.153 回答
13

我有解决方案(感谢Thariama,他给了我一些元素)

要使用 tinyMCE 设置 textarea 的内容,我们必须在初始化 tinyMCE 之前填写 textarea。此外,响应如下:

  1. 创建文本区域:

    <textarea style="width: 95%;" name="Title"  id="title"></textarea>
    
  2. 设置textarea的内容:

    $('#title').html(selected_article_title);
    
  3. 初始化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"
    });
    

它完成了!享受。

于 2012-08-03T06:36:52.523 回答
12

对于 tinymce 版本 4,

tinymce.get('title').setContent(selected_article_title);

工作得很好 - 在初始化编辑器之后也是如此。

于 2015-07-22T20:35:15.147 回答
4
于 2020-04-27T06:35:39.880 回答
3

使用这个

tinyMCE.get('title').setContent(selected_article_title);

不会工作。它将设置您的编辑器内容。

要设置编辑器源 html 元素(文本区域),您需要直接使用

$('#title').html(selected_article_title);

您需要知道您的编辑器与文本区域不同!

于 2012-08-02T15:58:28.913 回答
0

如果您设置了包含mso标签的内容(例如从 Outlook2013 生成的 html 内容,其中包含编号列表),则会丢失列表元素。通过tinymce.activeEditor.setContent(foo)设置或首先设置 textarea 内容然后初始化 tinymce给出相同的结果,我们无法正确看到列表元素,它们是左对齐的。但是如果我们使用setContent(foo, { format:'raw' })wee 设置,可以正确地看到列表元素。为什么?

于 2015-09-01T08:19:57.803 回答
0

以下适用于 tinymce 版本 4,并且在拖动时不会将编辑器显示为文本区域:

function initializeEditors() {
    var editorContent = {};
    $("#photo-list").sortable({
        start: function (e, ui) {
            $('.attachment-info').each(function () {
                var id = $(this).attr('id');
                editorContent[id] = tinyMCE.get(id).getContent();
            });
        },
        stop: function (e, ui) {
            $('.attachment-info').each(function () {
                var id = $(this).attr('id');
                tinymce.execCommand('mceRemoveEditor', false, id);
                tinymce.execCommand('mceAddEditor', true, id);
                tinyMCE.get(id).setContent(editorContent[id]);
            });
        }
    });
}
于 2016-10-19T16:50:40.390 回答
0
$('#title').html(selected_article_title);

确保 selected_article_title 不包含任何 html 标记。

于 2017-07-13T19:35:09.887 回答
0

I just wrote this instead of setContent

const textarea = document.querySelector('#title')
textarea.innerHTML = selected_article_title

and it worked

于 2022-02-09T11:40:23.490 回答