document中Selection、Range的介绍

Selection对象:
     代表窗口或窗格中的当前所选内容。所选内容代表文档中选定(或突出显示)的区域,如果文档中没有选定任何内容,则代表插入点。每个文档窗格只能有一个 Selection 对象,并且在整个应用程序中只能有一个活动的 Selection 对象。 Text 属性是 Selection 对象的默认属性。使用此属性可设置或返回当前所选内容中的文本。  由于 Range 对象与 Selection 对象的许多方法和属性都相同,因此,如果没有必要对当前所选内容进行实际更改,最好使用 Range 对象来处理文档。

selection不是w3c的标准,只是一些主流浏览器提供的一些API!

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

     selection 对象代表了当前激活选中区,即高亮文本块,或文档中用户可执行某些操作的其它元素。selection对象的典型用途是作为用户的输入,以便识别正在对文档的哪一部分正在处理,或者作为某一操作的结果输出给用户。
     用户和脚本都可以创建选中区。 用户创建选中区的办法是拖曳文档的一部分。脚本创建选中区的办法是在文本区域或类似对象上调用 select 方法。要获取当前选中区,请对document对象应用selection关键字。

     要对选中区执行操作,请先用createRange方法从选中区创建一 个文本区域对象: document.selection.createRange()。根据当前文字选择返回TextRange对象,或根据控件选择返回ControlRange对象。配合 execCommand,在 HTML 编辑器中很有用,比如:文字加粗、斜体、复制、粘贴、创 建超链接等。selection.type:选中内容的类型。 
     document.selection.createRange().collapse(toStart) :  collapse() 方法 将设置范围的一个边界点,使它与另一个边界点相同。要修改的边界点由参数  toStart(true|false) 指定。该方法返回后,范围将“折叠”,即表示文档中的一个点,没有内容。当范围被折叠后,它的 collapsed 属性将被设置为 true。

       一个文档同一时间只能有一个选中区。选中区的类型决定了其中为空或者包含文本或元素块。尽管空的选中区不包含任何内容,你仍然可以用它作为文档中的位置标志。

一个简单的例子(对选中的文本执行加粗命令 , 该脚本只在IE下有效)

<html> 
     <head> 
          <title>a test for selection object</title> 
     </head> 

     <body> 
          <script language='javascript'> 
               function test()  {  
                    var textRange = document.selection.createRange();  
                   textRange.execCommand('Bold');  
               }  
          </script> 
          
          <div onmouseup = "javascript:test();">select me.... , I will be bold..</div> 
     </body> 

</html>   

Range对象:
 Range 对象表示文档的连续范围区域,如用户在浏览器窗口中用鼠标拖动选中的区域。每个 Range 对象由一个起始字符位置和一个终止字符位置定 义。 一旦定义了范围的边界点,就可以使用 deleteContents()、extractContents()、cloneContents() 和 insertNode() 方法实现剪切、复制和粘贴的操作。

术语:范围、边界点和偏移量:

     一个范围具有两个边界点,即一个开始点和一个结束点。每个边界点由一个节点和那个节点的偏移量指定。该节点通常是 Element 节点Document 节点或 Text 节点。对于 Element 节点和 Document 节点,偏移量指该节点的子节点。偏移量为 0,说明边界点位于该节点的第一个子节点之前。偏移量为 1,说明边界点位于该节点的第一个子节点之后,第二个子节点之前。但如果边界节点是 Text 节点,偏移量则指的是文本中两个字符之间的位置。

      所有属性都是只读的,不能通过设置这些属性改变范围的开始点和结束点,必须调用 setEnd() 方法和 setStart() 方法实现这一点。


Selection.SetRange(start, end) 方法 :

设置所选内容的起始字符和结束字符的位置。字符位置的值从文档该部分开头计起。起始值为 0(零),将计算所有的字符,包括非打印字符和未显示的隐藏字符。SetRange 方法用于重新定义现有 Selection 对象的起始和结束位置。


(document.body.createTextRange.collapse(true))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值