我想在用户选择网页上的某些文字时显示提醒。 警报应该与用户选择的文本相同。每当用户选择一些文本然后时,警报就会弹出。
我尝试过两种不同的方法。
var range = window.getSelection().getRangeAt(0);
var selectionContents = range.extractContents();
alert(selectionContents);
输出: 无警报框
var selObj = window.getSelection();
var selectedText = selObj.toString();
alert(selectedText);
输出:清空警告框。
参考文献:
https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection
https://developer.mozilla.org/en/docs/Web/API/Selection
答案 0 :(得分:1)
您需要将逻辑放在事件处理程序中,click
事件应该起作用,因为选择通常涉及单击元素。如果用户使用键盘选择文本,您可能还希望将处理程序绑定到keyup
事件。
我使用了页面body
,但您可以使用其他任何您喜欢的文字容器。
HTML:
<body>Some text to select. Only alert when "Some text" is highlighted.<body>
使用Javascript:
// add event listener to table
document.body.addEventListener("click", function(){
var selObj = window.getSelection();
var selectedText = selObj.toString();
if (selectedText === "Some text") {
alert(selectedText);
}
}, false);