ユーザーが要素をクリックしたことに応じて、新しいCKEditor ver4インスタンスを作成しようとしています。アプリケーションの性質上、CKEditor サンプルで概説されている「autoInline」機能を使用できません。以下のサンプルは実際にエディター インスタンスを作成しますが、そのインスタンスには重大な問題があります。インライン インスタンスは、ユーザーがクリックすると消えるはずです。ただし、この例では、ユーザーはまずクリックしてインスタンスに戻り、次にもう一度クリックする必要があります。どうすればこれを防ぐことができますか?
<!doctype html>
<html>
<head>
<script src="jspath/ckeditor.js"></script>
<script>
var editor = null;
CKEDITOR.disableAutoInline = true;
function init() {
var e2 = document.getElementById("element2");
e2.addEventListener("click", function () {
if(!editor) {
editor = CKEDITOR.inline(e2);
editor.on('instanceReady', function () {
console.log("instanceReady")
console.log(editor.focusManager.hasFocus);
});
editor.on('focus', function() {
console.log("focus");
})
editor.on('blur', function() {
console.log("blur");
editor.destroy();
editor = null;
})
}
})
}
</script>
</head>
<body onload="init()">
<div tabindex="0" id="element2" style="background-color: yellow;" contentEditable = true>Element 2</div>
</body>
</html>