2013-01-18 102 views
0

我試圖用JavaScript確定是否在CKEditor中選擇了任何東西。我希望有一個像editor.hasSelection() bool。我開始使用editor.getSelection().getSelectedText() === "",但如果選擇一個沒有「文本」的元素(如img),那麼這將是一個空白字符串,給我一個錯誤的否定。我也研究了editor.getSelection().getSelectedElement(),但是如果選擇了多個元素,那麼它就會爲空。如何判斷是否在CKEditor中選擇了任何東西

是否有任何這樣做,我沒有在API中看到?

回答

1

在我看來,好像CKEditor選擇API沒有任何東西直接做到這一點。不過,我認爲以下內容會做到這一點,儘管我同意這是令人遺憾的(並且令人驚訝),沒有相應的本地瀏覽器Selection對象的isCollapsed屬性。

這是未經測試,但看起來好像它會工作:

function hasSelection(editor) { 
    var sel = editor.getSelection(); 
    var ranges = sel.getRanges(); 
    for (var i = 0, len = ranges.length; i < len; ++i) { 
     if (!ranges[i].collapsed) { 
      return true; 
     } 
    } 
    return false; 
} 

// Example: 
alert(hasSelection(editor)); 
+0

@ user1810125:嗯,對返回值混淆遺憾。這個想法是對的:) –

相關問題