0

Ckeditor に問題があります。Fancybox Ajax ポップアップを使用すると、テキストエリアが Ckeditor エリアに変換されません。

私のページの上に私は Ckeditor をロードします:

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

その後、テキストエリアを作成します。変換は通常、ckeditor クラスによって行われます。

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

テキストエリアは変換されません。これは AJAX が原因です。誰かが Ajax でロードされたポップアップで CKeditor フィールドを使用した経験があり、テキストエリアで 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 内でテキストエリアを置き換えるか、このようなものを使用してみてください。

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

そして、次のようなテキストエリアを使用します

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

それが私が思っていたような ajax コールバックでない場合は、何が何であるかを調べて、そこで置き換えてください。

于 2013-05-05T17:14:19.240 に答える