TinyMCE获得所有编辑和设置

时间:2018-02-07 10:39:19

标签: javascript jquery tinymce

美好的一天,

我正在尝试制作一个脚本,通过TinyMCE迭代所有编辑器(并最终获取所有内容并保存)并替换其内容。

然而,这仅适用于第一个编辑器,但不适用于下一个编辑器。

    for (var i = 0; i < tinymce.editors.length; i++) {
    var editorInstance = tinymce.editors[i];
    editorInstance.setContent('I have changed the content of this editor!');
}

不确定我做错了什么。

我的HTML代码是:

<textarea id="mytextarea" class="editor" name="editor[156]"></textarea>
<textarea id="mytextarea" class="editor" name="editor[172]"></textarea>
<textarea id="mytextarea" class="editor" name="editor[173]"></textarea>
<textarea id="mytextarea" class="editor" name="editor[174]"></textarea>

按照我自己的逻辑,这应该有效。 (*但它没有&#t ;-) *)

我也尝试了不同的方式:

$("#editorsection .editor").each(function () {
    console.log('editor found method #1');
    var Content = tinyMCE.$(this).getContent();
    console.log('obtained content : ' + Content);
});

但也无济于事。

我希望有人可以告诉我我做错了什么。提前谢谢!

建议的解决方案:Michael Fromin

HTML code:

<textarea class="editor" name="editor[156]"></textarea>
<textarea class="editor" name="editor[172]"></textarea>
<textarea class="editor" name="editor[173]"></textarea>
<textarea class="editor" name="editor[174]"></textarea>

Javascript / JQuery代码

function SaveContent(){
    console.log('ajax save content button clicked');
    console.log(tinymce.editors.length + ' : TinyMCE editors found.');

    var editorContent = [];

    for (var i = 0; i < tinymce.editors.length; i++) {
        var editorInstance = tinymce.editors[i];
        var content = editorInstance.getContent();
        editorContent.push( content );
        console.log('editor : ' + i + ' has content set : ' + content );
    }

    console.log('obtained content : ' + editorContent);

    ///######## SENDING THE INFORMATION BY AJAX
    $.ajax({
        type: "POST",
        url: "?ajaxcall=quicksave",
        data: {
            'content': editorContent,
            'page': 5
        },
        ///######## IN CASE OF SUCCESS
        success: function (response) {
            if(response !== ''){
                alert('error : ' + response);
            }
        }
    }
    );
}

1 个答案:

答案 0 :(得分:1)

您在一个页面上不能有多个具有相同id的项目 - 这是无效的HTML。

如果您更改每个textarea以拥有自己的id,则应该开始工作。

这个小提琴显示了一个工作示例:http://fiddle.tinymce.com/Ujgaab/2