TinyMCE Ajax。如何在回调期间找到编辑器?(TinyMCE.get不起作用)
我正在做一些我认为相当标准的事情: 在Ajax应用程序中,我通过 a) 向DOM动态添加textarea。textarea的id存储在名为editField的变量中 b) 我把TinyMCE像这样包起来:TinyMCE Ajax。如何在回调期间找到编辑器?(TinyMCE.get不起作用),tinymce,Tinymce,我正在做一些我认为相当标准的事情: 在Ajax应用程序中,我通过 a) 向DOM动态添加textarea。textarea的id存储在名为editField的变量中 b) 我把TinyMCE像这样包起来: tinyMCE.execCommand("mceAddControl", false, jq(editField).attr('id')); c) 我向服务器发出一个ajax调用,以获取要编辑的数据,在回调中,我想将其放入编辑器中 tinyMCE.get( jq(editField).att
tinyMCE.execCommand("mceAddControl", false, jq(editField).attr('id'));
c) 我向服务器发出一个ajax调用,以获取要编辑的数据,在回调中,我想将其放入编辑器中
tinyMCE.get( jq(editField).attr('id') ).setContent(data);
但是,当我从ajax调用返回回调时
tinyMCE.get( jq(editField).attr('id') )
正在返回未定义的
编辑似乎在工作。我可以使用它,甚至可以通过tinyMCE.activeEditor访问它(当我尝试保存时会发生这种情况)。但我现在无法通过get获得它
因此,要么:
a) 当回调返回时,tinyMCE没有完全实例化
b) 还有别的事情
你知道我如何测试这个吗?人们如何解决这个问题呢?为什么不使用editField而不是使用jquery节点的id属性(?)(性能也应该更好):
这行吗?为什么不使用editField而不是使用jquery节点(?)的id属性(性能也应该更好):
这行吗?行。我解决了这个问题。但不是很优雅 我真正的问题是TinyMCE编辑器没有在ajax调用返回时完全实例化 我最后做的是: 1) 在ajax回调中: a) 开始使用addControl命令实例化编辑器 b) 用服务器返回的值填充全局变量(MY_global) 2) 当我调用tinyMCE.init()时,我会给它传递一个OnInit事件的回调。这需要两个步骤: a) 定义一个“setup”函数,将OnInit回调处理程序添加到tinyMCE。回调检查全局变量(在这个简化中为MY_global),并将其值插入到“this”中的tinyMCE实例中 b) 将此设置传递到tinyMCE.init
var config = {
blah : blah,
setup : setup
};
tinyMCE.init(config);
现在ajax调用仍然会在实例化tinyMCE之前返回其值,因此它会填充MY_GLOBAL。然后,当编辑器最终出现时,它会触发OnInit回调,该回调会找到保存在MY_GLOBAL中的值并将其放入编辑器。确定。我解决了这个问题。但不是很优雅
tinyMCE.get( jq(editField).attr('id') ).setContent(data);
我真正的问题是TinyMCE编辑器没有在ajax调用返回时完全实例化
我最后做的是:
1) 在ajax回调中:
a) 开始使用addControl命令实例化编辑器
b) 用服务器返回的值填充全局变量(MY_global)
2) 当我调用tinyMCE.init()时,我会给它传递一个OnInit事件的回调。这需要两个步骤:
a) 定义一个“setup”函数,将OnInit回调处理程序添加到tinyMCE。回调检查全局变量(在这个简化中为MY_global),并将其值插入到“this”中的tinyMCE实例中
b) 将此设置传递到tinyMCE.init
var config = {
blah : blah,
setup : setup
};
tinyMCE.init(config);
现在ajax调用仍然会在实例化tinyMCE之前返回其值,因此它会填充MY_GLOBAL。然后,当编辑器最终出现时,它会触发OnInit回调,该回调会找到保存在MY_GLOBAL中的值并将其放入编辑器。找到了另一个解决方案:
tinyMCE.get( jq(editField).attr('id') ).setContent(data);
while(tinyMCE.get === 'undefined'){
try {
var ed = tinyMCE.get('your_mce_div');
} catch (e) {
// TODO: handle exception
}
}
对我有用。可能对某人有用。找到了另一种解决方案:
while(tinyMCE.get === 'undefined'){
try {
var ed = tinyMCE.get('your_mce_div');
} catch (e) {
// TODO: handle exception
}
}
对我有用。也许它对某人有用。你试过tinyMCE.get(0)吗 你试过tinyMCE.get(0)吗 您有一个未知的函数“jq”,因此了解它是否返回正确的id值会很有帮助。jq只是jQuery的$版本。是的,它返回了正确的值。至少它在每种情况下都产生了相同的价值。(即,它的值与附加tinyMCE时使用的值相同。)您有一个未知函数“jq”,因此了解它是否返回正确的id值会很有帮助。jq只是jQuery的$版本。是的,它返回了正确的值。至少它在每种情况下都产生了相同的价值。(即,它的值与连接tinyMCE时使用的值相同。)事实上,你是对的。但这不是问题所在。这没什么区别。下次我需要它时,编辑器还没有完全实例化。事实上,你是对的。但这不是问题所在。这没什么区别。下次我需要它时,编辑器还没有完全实例化。