我怎么知道用户何时选择了一个段落?

How can I know when the user selects a paragraph?

我想在用户选择页面上的任何文本时执行一个操作。我试过这样的事情:

 var selObj;

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

但后来我发现 onselect 仅适用于输入和文本区域,并没有找到其他方法来尝试这样的事情。

编辑:我知道如何获取选定的文本,我需要一个在选定文本时触发的事件!

您可以将 mouseup 事件绑定到段落 ("p") 标记。在该事件处理程序中,您可以检查:

document.selection.createRange().text

window.getSelection()

另外,你可以在这里查看 javascript to get paragraph of selected text in web page.

使用鼠标事件捕获选择。

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>