CKEditor のダイアログに関係する特有の問題があります。ダイアログウィンドウにphpファイル(データテーブルを含む)を埋め込むことができました。ユーザーは、CKEditor に挿入される行を選択できます。
HTML をダイアログ ウィンドウに埋め込むのは簡単に思えました。
CKEDITOR.dialog.add( 'tableDialog', function( editor ) {
return {
title: 'parametres',
minWidth: 800,
minHeight: 500,
contents: [
{
id: 'tab-basic',
label: 'Basic Settings',
elements: [
{
type:"html",
id:"htmlPreview",
style:"width:95%;height:95%;",
html:test_HTML,
commit: function( element ) {
etc..
面白いのは、変数 'test_HTML' の設定が難しいことです。HTML オブジェクトとして定義すると、完全に機能します。
test_HTML = '<object type="text/html" data="http://entseditor.etest.ee/edit/mm_insert.php" style="width:100%; height:100%"><p></p></object>';
、jQuery ajaxでそれを行うと失敗します:
var request = $.ajax({
url: "http://entseditor.etest.ee/edit/mm_insert.php",
//type: "POST",
//data: {id : menuId},
dataType: "html"
});
request.done(function(msg) {
//$("#asdasd").html( msg );
test_HTML = msg ;
//alert( 'success' + test_HTML );
});
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
(リクエストは適切で、id='asdasd' に適切な応答を返しますが、CKEditor ダイアログ ウィンドウには、「Uncaught TypeError: Undefined のメソッド 'charAt' を呼び出せません」と表示されます。それでも、両方の HTML は同じように見えます。)
オブジェクトを使用しても問題はありませんが、作成された #document からの応答が得られないようです。変数と非表示フィールドを試しましたが、「親」ドキュメントからアクセスできません..
CKEditor のこちら側の経験がある人はいますか?
(すべてを適切な言葉で説明していない場合は申し訳ありません..)