2

ユーザーが要素をクリックしたことに応じて、新しい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>
4

1 に答える 1

1

それが事実であったにもかかわらず、editor.focusManager.hasFocusエディターの要素には実際にはフォーカスがありませんでした。おそらくこれはバグですか?とにかく、関数に追加editor.focus();すると問題が解決しました。instanceReady

于 2013-04-20T02:11:31.437 に答える