获取选中文本

 document.onmouseup = document.ondbclick = function(){
    var txt;
    if (document.selection) {
        txt = document.selection.createRange().text
    } else {
        txt = window.getSelection() + '';
    }
    console.log(txt);
}

鼠标禁止选中文字

 // js方式
document.onselectstart=function(){return false;}
<body onselectstart="return false"></body>
// css方式
user-select: none; 

获取选中文本的位置和该文本所在的文本段

 // 开始选中文本时的位置
var start = window.getSelection().anchorOffset;
// 开始选中文本时,鼠标所在的文本节点
var $start = window.getSelection().anchorNode;
// 结束选中时的位置
var end = window.getSelection().focusOffset;
// 结束选中时,鼠标所在的文本节点
var $end = window.getSelection().focusNode; 
PS:1、考虑到有人可能会从后往前滑动来选中文本,所以开始位置有可能在结束位置之后。2、开始节点和结束节点可能并不是同一节点,比如有两段文本,从上一段选择到下一段,两个节点就不相同

补充说明:如果需要获取选中的文本在页面中的坐标位置,可在文本下边再重叠一层,并且重叠层的每一个文字都用span标签包起来,然后通过选中的开始位置和结束位置获取对应的span标签,再判断该span标签的坐标