美好的一天,
我正在尝试制作一个脚本,通过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);
});
但也无济于事。
我希望有人可以告诉我我做错了什么。提前谢谢!
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);
}
}
}
);
}
答案 0 :(得分:1)
您在一个页面上不能有多个具有相同id
的项目 - 这是无效的HTML。
如果您更改每个textarea
以拥有自己的id
,则应该开始工作。
这个小提琴显示了一个工作示例:http://fiddle.tinymce.com/Ujgaab/2