jquery如何获取选择的文本

我想实现这样的功能:用鼠标在网页上选取一段文本后,触发jquery,读取选择的文本。... 我想实现这样的功能:用鼠标在网页上选取一段文本后,触发jquery,读取选择的文本。 展开
 我来答
whereispal5
推荐于2016-11-06 · TA获得超过506个赞
知道小有建树答主
回答量:314
采纳率:100%
帮助的人:57万
展开全部

收藏代码,,ie ff都好用,,其他的嘿嘿没试过

var cursorPosition = {
    get: function (textarea) {
        var rangeData = {text: "", start: 0, end: 0 };
     
        if (textarea.setSelectionRange) { // W3C   
            textarea.focus();
            rangeData.start= textarea.selectionStart;
            rangeData.end = textarea.selectionEnd;
            rangeData.text = (rangeData.start != rangeData.end) ? textarea.value.substring(rangeData.start, rangeData.end): "";
        } else if (document.selection) { // IE
            textarea.focus();
            var i,
                oS = document.selection.createRange(),
                oR = document.body.createTextRange();
            oR.moveToElementText(textarea);
             
            rangeData.text = oS.text;
            rangeData.bookmark = oS.getBookmark();
             
            for (i = 0; oR.compareEndPoints('StartToStart', oS) < 0 && oS.moveStart("character", -1) !== 0; i ++) {
 
                if (textarea.value.charAt(i) == '\r' ) {
                    i ++;
                }
            }
            rangeData.start = i;
            rangeData.end = rangeData.text.length + rangeData.start;
        }
         
        return rangeData;
    },
     
    set: function (textarea, rangeData) {
        var oR, start, end;
        if(!rangeData) {
            alert("You must get cursor position first.")
        }
        textarea.focus();
        if (textarea.setSelectionRange) { // W3C
            textarea.setSelectionRange(rangeData.start, rangeData.end);
        } else if (textarea.createTextRange) { // IE
            oR = textarea.createTextRange();
            if(textarea.value.length === rangeData.start) {
                oR.collapse(false);
                oR.select();
            } else {
                oR.moveToBookmark(rangeData.bookmark);
                oR.select();
            }
        }
    },
 
    add: function (textarea, rangeData, text) {
        var oValue, nValue, oR, sR, nStart, nEnd, st;
        this.set(textarea, rangeData);
         
        if (textarea.setSelectionRange) { // W3C
            oValue = textarea.value;
            nValue = oValue.substring(0, rangeData.start) + text + oValue.substring(rangeData.end);
            nStart = nEnd = rangeData.start + text.length;
            st = textarea.scrollTop;
            textarea.value = nValue;
            if(textarea.scrollTop != st) {
                textarea.scrollTop = st;
            }
            textarea.setSelectionRange(nStart, nEnd);
        } else if (textarea.createTextRange) { // IE
            sR = document.selection.createRange();
            sR.text = text;
            sR.setEndPoint('StartToEnd', sR);
            sR.select();
        }
    }
}
$('#id').mouseup(function () {
    var pos = cursorPosition.get($(this)[0]);
    alert(!pos.text?'':pos.text);
});
追问
谢谢!
我先研究下
Baby_原來
推荐于2016-10-16 · TA获得超过3402个赞
知道大有可为答主
回答量:1535
采纳率:94%
帮助的人:508万
展开全部

<div id="tst" onmouseup="doit()">this is test</div>
<script>
function doit(){
 //脚本获取网页中选中文字
    var word = document.selection.createRange().text; 

    //获取选中文字所在的句子
    var range =  document.selection.createRange();
    range.expand("sentence");
    var sentence = range.text;

    alert(word);//弹出选中的文字
    alert(sentence );
 
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lkiarest
推荐于2018-03-20 · TA获得超过543个赞
知道小有建树答主
回答量:761
采纳率:100%
帮助的人:412万
展开全部
    <script type="text/javascript">
    function getSelText() {
        // for IE, IE的话用这一段
        var sel = document.selection.createRange();
        var text = sel.text;
        // for FF,不是IE的话用这一段
        //var text = document.getSelection();
        if (text != "") {
            alert(text);
        }
    }
    </script>
    <div onmouseup="getSelText();" id="testdiv">
        aaaaaaaaaaabbbbbbbccccc
    </div>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-14
展开全部
使用$("#id").text()可以获取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
点点圈圈27
2014-01-14
知道答主
回答量:5
采纳率:0%
帮助的人:6966
展开全部
$(this).text()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式