2015-03-02 33 views
0

我想在用戶在頁面上選擇任何文本時執行操作。我想是這樣的:如何知道用戶何時選擇一個段落?

var selObj; 

     document.querySelector("p").onselect = function(){ 
     selObj = window.getSelection(); 
     var selectedText = selObj.toString(); 
     //action 

但後來我發現,onselect僅用於輸入和文本區域,並發現試圖像這樣沒有其他辦法。

編輯:我知道如何獲得選定的文本,我需要選擇文本時觸發的事件!

+0

聚焦狀態可能會做它 – Rooster 2015-03-02 19:43:00

+0

也許這可以幫助http://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text – HAMED 2015-03-02 19:44:29

+1

不是重複。鏈接的問題是如何選擇文本。這個問題是如何在用戶選擇文本時觸發一個事件。 – CoderDennis 2015-03-02 19:54:38

回答

0

使用鼠標事件捕獲選擇。

var paras = document.getElementsByClassName("para"); 
 

 
for (var i = 0; i < paras.length; i++) { 
 
    paras[i].addEventListener('click', getSelected, false); 
 
} 
 

 
function selectElementContents(el) { 
 

 
    return document.getSelection()||window.getSelection(); 
 

 
} 
 

 
function getSelected() { 
 

 
    var el = document.getElementById("selectedPara"); 
 
    alert(selectElementContents(el)); 
 

 
};
<p class="para">select me</p> 
 
<p class="para">over me</p> 
 
<p class="para">hey here</p>

+0

如果我希望它適用於任何段落,而不是一個具有特定ID的? – 2015-03-02 19:59:36

相關問題