作者JYHuang (夏天到了,冷不起来了说)
看板Ajax
标题Re: [讨论] Ajax载入页面里的tinymce
时间Thu Feb 7 09:44:36 2013
自问自答:
网路上有人说要在动态产生textarea(不论是用js产生或ajax load)前
先执行这一个来把已经产生的Coltrol(估且用这说法论之)移除
tinyMCE.execCommand('mceRemoveControl', true,
'textarea_id');
然後在产生textarea DOM之後再执行此指令,将其产生tinyMCE Control
tinyMCE.execCommand("mceAddControl",false,
'textarea_id');
(我原本是由ajax载入一串包含js码的html,在html里的js加上上列的指令
不过这样无法执行)
由於考量到textarea如果一多就要执行一堆
我用了以下的方法
// 初始
var tinyMCE_instances = new Object();
// 动态执行的function
function ajax_load(){
$.each(tinyMCE_instances,function( key, value ) {
tinyMCE.execCommand('mceRemoveControl', true,value);
});
$.post("ajax.php",function(data){
$("#content").html(data);
$("#content textarea.tinymce").each(function(){
if (!tinyMCE_instances[this.id])
tinyMCE_instances[this.id] = this.id;
tinyMCE.execCommand("mceAddControl",false, this.id);
});
});
}
实在是有点麻烦到 =.=
※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: 原本的做法是页面内容固定
: 由ajax取得json後一一填入各个input和textarea
: 所以用jquery.tinymce去把textarea DOM转换成编辑器没有问题
: 因为DOM一直存在着,载入页面时就被tinymce初始化了。
: 後来改成整个区块的HTML是由ajax载入
: 第一次呼叫时还可以work
: 再一次载入时,DOM消失又被载入
: 此时tinymce就发生错误
: 无法把textarea DOM初始化成编辑器了。
: 不知道有没有人也是用此作法然後解决过的?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.246.137