0

我对 Ckeditor 有疑问。当使用 Fancybox Ajax 弹出窗口时,我的 textarea 不会转换为 Ckeditor 区域。

在我的页面顶部,我加载 Ckeditor:

<script type="text/javascript" src="<?php echo base_url(); ?>scripts/ckeditor/ckeditor.js"></script>

之后我制作了一个textarea。转换通常应该由 ckeditor 类完成。

<textarea rows="10" cols="80" class="ckeditor" name="short_description"></textarea>

文本区域不转换。这是由 AJAX 引起的。是否有人在加载 Ajax 的弹出窗口中有使用 CKeditor 字段的经验,现在如何在 textarea 上重新绑定 Ckeditor?

PS firebug 给出以下错误:

SyntaxError: syntax error
[Afbreken op deze fout]     

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://ww

nl.js?t=D2LI (regel 2)

SyntaxError: syntax error
[Afbreken op deze fout]     

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://ww

styles.js?t=D2LI (regel 2)

TypeError: b.lang.contextmenu is undefined
[Afbreken op deze fout]     

...ea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CK...

感谢帮助!

/** Comment **/

我使用此代码加载 Fancybox:

$('a.fancybox').fancybox({
    type:'ajax',
    scrolling:'no',
    autoSize:true,
    afterShow:_init_ajax_forms
});
4

2 回答 2

1

我不明白这些错误,但我认为这可能是因为 DOM 元素只有在 DOM 准备好后的事件期间存在时才会被替换。在最初的尝试之后,CKEDITOR 不会尝试自动替换元素。

假设 afterShow 是一个回调函数(我不了解花式框),请尝试在 _init_ajax_forms 内进行 textarea 替换或使用类似的东西。

afterShow:function() {
    CKEDITOR.replace('myLittlePony');
    _init_ajax_forms();
}

并使用类似的文本区域

<textarea id="myLittlePony" name="myLittlePony"></textarea>

如果这不是我想的 ajax 回调,请找出是什么并在那里进行替换。

于 2013-05-05T17:14:19.240 回答
0

要在fancybox close 上销毁 ckeditor,您可以执行以下操作:

<?php
$this->widget('cms.extensions.fancybox.EFancyBox', array('target' => 'a#fancy-link','config' => array('onClosed'=>'js:function(){for(name in CKEDITOR.instances){ CKEDITOR.instances[name].destroy(true);}}')));
?>
于 2015-12-29T06:41:33.780 回答