Web ベースでチャットを作成したい。B、I、U、フォント タイプ、フォント サイズには、Yahoo Messenger や他の IM と同じように CKEDITOR を使用します。
キーの取得に成功しましたが、enter呼び出すと次のエラーが発生しました。
my_ckeditor_inctance_obj.setData('');
enter他のチャット プログラム (FB、YM など) と同じようにプレス テキストがなくなるため、これを呼び出します。
クロムを使用しました。Chrome のコンソールは次のように述べています。
Uncaught TypeError: Cannot call method 'equals' of null ckeditor.js:36
// 詳細エラー
d.range.getCommonAncestor ckeditor.js:36
(匿名関数) ckeditor.js:133
s ckeditor.js:54
j.enterkey.enterBlock ckeditor.js:53
(匿名関数)
しかし、ボタン送信も使用しました。送信をクリックすると、完全に機能します。
これは私のソースコードです:
$(document).ready(function(){
// Init CKEDITOR
CKEDITOR.replace('editor1',{
toolbar:[['Bold','Italic','Underline'],['Font','FontSize'],['TextColor','BGColor']]
});
// Handle for keypress. In this case is When ENTER key is press
CKEDITOR.instances['editor1'].on('contentDom', function() {
this.document.on('keydown', function(e){
if(e.data.getKey() == 13){ // Do this code when ENTER is pressed
var temp=getContent();
console.log(temp);
}
});
});
});
function getContent(){
// Get the editor instance that you want to interact with.
var oEditor = CKEDITOR.instances.editor1;
// Get editor contents
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#getData
var temp=oEditor.getData();
//set to blank again
oEditor.setData(''); // This code make error --> Uncaught TypeError: Cannot call method 'equals' of null ckeditor.js:36 BUT when click 'send' button this error didn't show.(send button use this function)
return temp;
}
その問題を解決するにはどうすればよいですか?
更新:
ここで解決策を見つけましたテキストエリアの値を保存するためのキーを入力してください
AlfonsoMLに感謝します