动态更新特定HTML元素中的选定文本

时间:2015-02-25 19:23:31

标签: javascript html events mouseevent

我尝试动态更新特定HTML元素中的文本选择。为此,链接功能包含

element.on('mouseup', function(event) {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }

(部分取自https://stackoverflow.com/a/5379408/353337)。这在点击并在element中选择文字时效果很好。

问题在于mouseup事件仅在特定element上截获。如果我单击页面上的任何其他位置,当然也会取消选择元素中的文本,但事件永远不会触发。

如何确保text始终包含元素中的选定文本?

1 个答案:

答案 0 :(得分:1)

我认为你必须听取整个文件的意见。 JSFiddle

为了检查标记的单词是否是单词的一部分(或相同)我使用了indexOf函数,如果单词相等则返回0,如果它是单词的一部分则返回1。所以我比较大于或等于0。

$(document).on('mouseup', function (e){
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }

    var elementText = $(".element").text();

    if(elementText.indexOf(text) >= 0) {
        alert(true);    
    }
    else {
        alert(false)
    }
});