2013-02-08 66 views
2

我試圖創建一個新的CKEditor ver4實例來響應用戶單擊元素。由於應用程序的性質,我不能使用CKEditor Sample中列出的「自動插入」功能。雖然下面的示例實際上創建了一個編輯器實例,但該實例存在重大問題。內聯實例應該在用戶點擊時消失。但是,在此示例中,用戶必須先點擊一下,再次單擊實例,然後再次單擊。我怎樣才能防止這一點?新創建的CKEditor實例上的鼠標事件問題

<!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> 
+0

我有同樣的問題。沒有設法修復它。 – 2013-03-15 15:54:40

回答

1

儘管editor.focusManager.hasFocus是真實的,編輯的元素並沒有在實際上具有焦點。也許這是一個錯誤?無論如何,將editor.focus();添加到instanceReady函數可以解決問題。