doc.selection对象介绍

var userSelection;
if (window.getSelection) { //在非IE浏览器(Firefox、Safari、Chrome、Opera)下可以使用window.getSelection()获得selection对象
    userSelection = window.getSelection();
} else if (document.selection) { //IE浏览器 考虑到Opera,应该放在后面
    userSelection = document.selection.createRange();
}

document.selection只有IE支持,
  window.getSelection()也只有FireFox和Safari支持,都不是标准语法。

  selection 对象代表了当前激活选中区,即高亮文本块,或文档中用户可执行某些操作的其它元素。

     selection   对象的典型用途是作为用户的输入,以便识别正在对文档的哪一部分正在处理,或者作为某一操作的结果输出给用户。


     用户和脚本都可以创建选中区。

    (1)用户创建选中区的办法是:拖曳文档的一部分---选中一部分文本

    (2)脚本创建选中区的办法是在文本区域或类似对象上调用 select 方法。

     要获取当前选中区,请对document对象应用selection关键字:document.selection

    要对选中区执行操作,请先用createRange方法从选中区创建一个文本区域对象:document.selection.createRange() 

    (1) document.selection.createRange() 根据当前文字选择返回 TextRange 对象,

    (2) 或根据控件选择返回 ControlRange 对象。配合 execCommand,在 HTML 编辑器中很有用,比如:文字加粗、斜体、复制、          粘贴、创建超链接等。selection.type选中内容的类型。


 TextRange.setEndPoint(sType, oTextRange)

    oTextRange 是另一个TextRange对象

    sType是字符串类型 有4种选择

    StartToEnd

    StartToStart

    EndToStart

    EndToEnd


object.focus();//输入框获取焦点
/**
  * 根据当前选中的文字选择返回 TextRange 对象
  * 为 object 建立 TextRange 对象。使用此 TextRange 对象可以检索和修改 object 内的文本
          * */
var s = doc.selection.createRange();
s.setEndPoint(sType, obj.createTextRange());
return s.text.length;



实例

<html>
<body>
<p>4月13日消息,据台湾媒体报道,32岁的孙燕姿(Sng Ee Tze)和后天将满34岁的荷兰籍印度尼西亚男友纳迪姆(Nadim Van Der Ros)交往5年,曾说过"有空就结婚"的她,果然趁着宣传期尾声,于3月31日在新加坡登记注册了!昨消息传开,她未否认,仅说会选择适当时间公布喜讯,所属"美妙音乐"则表示她个性低调,婚礼只会邀请双方亲友,也不会透露细节,但据新加坡可靠消息指出,婚宴订在5月初。</p>
<button id="button">选中一些文字,然后点击本按钮</button>


<script>
var oBtn = document.getElementById("button");
oBtn.onclick = function() {
    var userSelection, text;
    if (window.getSelection) { 
        //现代浏览器
        userSelection = window.getSelection();
    } else if (document.selection) { 
        //IE浏览器 考虑到Opera,应该放在后面
        userSelection = document.selection.createRange();
    }
    if (!(text = userSelection.text)) {
        text = userSelection;
    }
    alert(text);
};
</script>


</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值