2

我正在尝试创建一个新的 CKEditor ver4 实例以响应用户单击元素。由于应用程序的性质,我无法使用CKEditor Sample中概述的“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 回答