js 获取页面选中的文本

window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

 

关键的api 是 window.getSelection()

 var testDiv = document.getElementById("testDiv");

    testDiv.onmouseup = function(){

        var selectionObj = null, rangeObj = null, selectedText = "", selectedHtml = "";

        if(window.getSelection){

            selectionObj = window.getSelection();

            selectedText = selectionObj.toString();

            rangeObj = selectionObj.getRangeAt(0);

            var docFragment = rangeObj.cloneContents();

            var tempDiv = document.createElement("div");

            tempDiv.appendChild(docFragment);

            selectedHtml = tempDiv.innerHTML;

        }else if(document.selection){

            selectionObj = document.selection;

            rangeObj = selectionObj.createRange();

            selectedText = rangeObj.text;

            selectedHtml = rangeObj.htmlText;

        }

        console.log(selectedText);

        console.log(selectedHtml);

    };

当选中的是input[type=text],textarea 里面的值时getSelection在 Firefox 下无法获取到选取值 

 

移除选中内容:

 

window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

 

 

可以参考:https://www.cnblogs.com/ArthurPatten/p/3317263.html

posted @ 2019-06-19 14:05  zhanglw  阅读(1234)  评论(0)    收藏  举报