我有一个可通过简单的AJAX / jQuery编辑按钮编辑的元素列表,效果很好。但是当我第二次尝试编辑同一场时,它不想打球。
代码段
var content = tinyMCE.get('content').getContent(); //get tinyMCE content
$("#edititem").load("editItem.php", {content: content}); //jQuery post
解决方案 - 这就是我的工作方式:
编辑 - 编辑时,将tinyMCE控件添加到textarea
tinyMCE.execCommand("mceAddControl",true,'content');
保存 - 保存时,请删除下次的控件
tinyMCE.execCommand('mceRemoveControl',false,'content');
答案 0 :(得分:2)
我想我会添加一个与上述解决方案结合使用的解决方案:
setTimeout(function() {tinyMCE.execCommand("mceAddControl", true, "content");}, 5);
无论出于何种原因,我不确定这是否是DOM操作或其他方面的时间问题,但是微小的延迟会让生活变得更好。但是setTimeout()
与使用jQuery .each()
方法无关,例如:
$("textarea").each(function(index) {
tinyMCE.execCommand("mceAddControl", false, $(this).attr("id"));
});
那必须是一个完全不同的时间问题。
Anyhoo,我以为我会分享这些调查结果,因为我相信其他人甚至可能会再次发现这个帖子会有所帮助。
答案 1 :(得分:2)
$(tinyMCE.editors).each(function(){
tinyMCE.remove(this);
});
答案 2 :(得分:1)
我对FCKeditor比较熟悉,但我觉得它很相似。 TinyMCE具有mceAddControl命令来添加/创建编辑器实例。你重新加载内容后是这样做的吗?
tinyMCE.execCommand('mceAddControl' ...
答案 3 :(得分:0)
对于tinymce 3.2.x,使用以下命令删除IE8或任何其他浏览器中的tinyMCE实例。由于tinymce.execCommand函数使输入字段在IE8中不可编辑。
tinyMCE.remove(editor); //editor is instance of tinymce editor and not editor id
这将修复“Permission Denied”错误,而不会禁用同一页面中的其他输入字段。