2011-09-13 87 views
0

我們有幾個文本區域有一些用戶可能複製到剪貼板的文本。檢測是否使用javascript選擇了textarea內容

沒有考慮太多的細節,因爲它只會變得複雜直截了當的問題:

是否有可能如果「選擇」一文本域的內容來檢測?


我應該提及使用onclick(或其他)事件處理程序是(理想情況下...)不是一個選項。

由於此文本是由'textarea外部'操作選擇的。

Flow是有些如下:

選擇掉落下來的選擇 - >在文本區域的文本選擇

OR

textarea的被點擊(的onclick) - >在文本區域的文本選擇

我知道我們可以使用一大堆事件處理程序來檢測textarea中文本的狀態,但希望通過js檢測textarea內部文本的狀態來做一個更簡單的方法。


感謝

+0

見http://stackoverflow.com/問題/ 401593/javascript-textarea-selection/403526#403526和http://stackoverflow.com/questions/717224/how-to-get-selected-text-in-textarea –

回答

1

此代碼是從this question拍攝,你需要將代碼稍微適應,但它顯示瞭如何訪問選擇了Mozilla和IE瀏覽器 -

function ShowSelection() 
{ 
    var textComponent = document.getElementById('Editor'); 
    var selectedText; 
    // IE version 
    if (document.selection != undefined) 
    { 
    textComponent.focus(); 
    var sel = document.selection.createRange(); 
    selectedText = sel.text; 
    } 
    // Mozilla version 
    else if (textComponent.selectionStart != undefined) 
    { 
    var startPos = textComponent.selectionStart; 
    var endPos = textComponent.selectionEnd; 
    selectedText = textComponent.value.substring(startPos, endPos) 
    } 
    alert("You selected: " + selectedText); 
} 
+0

選擇此答案,因爲三叉戟vs適當的瀏覽器分叉。謝謝! –

3

selectionStartselectionEnd性能保持選擇指數。

var textarea = document.getElementById("textarea1"); 
if(textarea.selectionStart == textarea.selectionEnd) alert("Nothing is selected!") 
相關問題