Webアプリケーションのプログラミングに使用する独自のカスタム非jQueryajaxがあります。最近、TinyMCEを使用してIE9で問題が発生したため、CKeditorに切り替えようとしています
編集可能なテキストは、次のようにdivでラップされています。
<div id='content'>
<div id='editable' contenteditable='true'>
page of inline text filled with ajax when links throughout the site are clicked
</div>
</div>
ドキュメントの例を使用して編集可能なコンテンツでgetDataを取得しようとすると、エラーが発生します。
私はこれをします:
CKEDITOR.instances.editable.getData();
そしてこれを入手してください:
Uncaught TypeError:未定義のメソッド'getData'を呼び出すことができません
ですから、エディターがどこにあるのかわからないことがわかります...すべてのエディターを調べてエディター名を取得しようとしましたが、うまくいきません。名前が見つからないようです。
私はこれを試しました:
for(var i in CKEDITOR.instances) {
alert(CKEDITOR.instances[i].name);
}
アラートは空白になっているため、名前が関連付けられていないようです。
また、最善の努力にもかかわらず、大規模なインライン編集の例のように、編集可能なテキストをその上にメニューを表示させることはできないようです。
あなたがもたらすことができるどんな援助にも感謝します。
ジェイソンシルバー
アップデート:
ここでは知識不足を誇示していますが、これまで「contenteditable ='true'」に出くわしたことがなかったので、インラインで入力できたので、なんとかしてエディターがインスタンス化されたと思いました...でも今はmエディターが私のdivに適用されているかどうか疑問に思います。
更新2:
ページがロードされ、スクリプトが最初に呼び出されたとき、divは存在しません。編集可能なdivは、AJAXを使用してDOMに送信されます。@Zeeは下にコメントを残し、エディターをそのdivに適用するために呼び出す必要のある他のコマンドがあるかどうか疑問に思ったので、このアプローチをテストする方法として、次のonclickを使用してページにボタンを作成しました。 (ajaxの例から採用)
var editor,html='';config = {};editor=CKEDITOR.appendTo('editable',config, html );
これにより、Chromeで次のエラーが発生します。
> Uncaught TypeError: Cannot call method 'equals' of undefined
> + CKEDITOR.tools.extend.getEditor ckeditor.js:101
> b ckeditor.js:252
> CKEDITOR.appendTo ckeditor.js:257
> onclick www.pediatricjunction.com:410
私は正しい方向に向かっていますか?エディターをdivに適用するようにプログラムでCKEditorに指示する別の方法はありますか?
更新3:
@Reinmarのおかげで、何か新しいことを試すことができました。これが解決策であるかどうかをテストするための最も明白な方法は、それぞれCKEDITOR.inlineAll()とinline('editable')を呼び出すコンテンツ編集可能divの上にボタンを配置することでした。
<input type='button' onclick=\"CKEDITOR.inlineAll();\" value='InlineAll'/>
<input type='button' onclick=\"CKEDITOR.inline('editable');\" value='Inline'/>
<input type='button' onclick=\"var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );\" value='getElementById'/>
これにより、Chromeで3つのボタンすべてに同じタイプのエラーが返されました。
Uncaught TypeError: Cannot call method 'equals' of undefined ckeditor.js:101
+ CKEDITOR.tools.extend.getEditor ckeditor.js:101
CKEDITOR.inline ckeditor.js:249
CKEDITOR.inlineAll ckeditor.js:250
onclick
更新4:
さらにいじってみると、json2007.jsに関連する問題を突き止めました。これは、Real Simple History(RSH.js)で動作するスクリプトです。これらのスクリプトはajaxの履歴を追跡することを目的としているため、ブラウザーを前後に移動しても、AJAXページビューが失われることはありません。
これがフィドルページです:http://jsfiddle.net/jasonsilver/3CqPv/2/