在JavaScript中使用window.selection()时没有警报框?

时间:2016-03-21 17:53:05

标签: javascript jquery

我想在用户选择网页上的某些文字时显示提醒。 警报应该与用户选择的文本相同。每当用户选择一些文本然后时,警报就会弹出。

我尝试过两种不同的方法。

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

1 个答案:

答案 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);

https://jsfiddle.net/jj8yoa8L/1/