获取选择文本

参考自:

http://www.zhangxinxu.com/wordpress/2011/04/js-range-html%E6%96%87%E6%A1%A3%E6%96%87%E5%AD%97%E5%86%85%E5%AE%B9%E9%80%89%E4%B8%AD%E3%80%81%E5%BA%93%E5%8F%8A%E5%BA%94%E7%94%A8%E4%BB%8B%E7%BB%8D/

 

http://www.w3school.com.cn/xmldom/dom_range.asp



IE678支持   document.selection.createRange()

chrome,FF,opera,safari支持   window.getSelection()

虽然看起来效果差不多,但IE是Text Range对象,而在Mozilla、Safari、Opera下是个Selection对象。

一般是document.onmouseup设置该处理函数

document.onmouseup = function(){
	//如果需要获取用户选择的文本
	var userSelection = getSelection();
	if(userSelection.text){//处理IE
		userSelection = userSelection.text;
	}
	alert(userSelection.toString());
}
function getSelection(){
	if(window.getSelection){
		return window.getSelection();
	}else{
		return document.selection.createRange();
	}
}



如果需要消除选择的文本,比如防止误选操作,可以这样写:


IE:  document.selection.empty()
other:   window.getSelection().removeAllRanges()


如果想创建和Selection对象内容一样的Range对象,可以这样:

var getRangeObject = function(selectionObject) {
    if (selectionObject.getRangeAt){
        return selectionObject.getRangeAt(0);
    }else{ // 较老版本Safari!
        var range = document.createRange();
        range.setStart(selectionObject.anchorNode,selectionObject.anchorOffset);
        range.setEnd(selectionObject.focusNode,selectionObject.focusOffset);
        return range;
    }
}
var rangeObject = getRangeObject(userSelection);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值