2015-03-02 88 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

相关问题