我怎么知道用户何时选择了一个段落?
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>
我想在用户选择页面上的任何文本时执行一个操作。我试过这样的事情:
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>