Selection.rangeCount

Experimental: 这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

The Selection.rangeCount是一个返回选区(selection)中range对象数量的只读属性。

在网页使用者点击一个加载完毕的新打开的页面之前,rangeCount的值是0。在使用者点击页面之后,rangeCount的值变为1,即使并没有可视的选区(selection)。

使用者一般情况下在一次只能选择一个range ,所以通常情况下rangeCount属性的值总为1。脚本(如javascript)可以使选区包含多个range。

Gecko 浏览器允许跨表格单元格获得多个选区(此处可能翻译不准). Firefox allows to select multiple ranges in the document by using Ctrl+click (unless the click within an element with display: table-cell).

用法

value = sel.rangeCount

例子

下面这个例子会每隔一秒显示一次rangeCount的值。在浏览器中选择文本,然后看看他的改变。

HTML Content

//打开控制台看看selection中有多少range对象。
//在Gecko浏览器,当你用鼠标在表格单元格中拖动的同时按住Ctrl,你可以选择多个range。

<table>
<tr><td>a.1<td>a.2
<tr><td>b.1<td>b.2


JavaScript Content

window.setInterval(function () {
  console.log(window.getSelection().rangeCount);
}, 1000);

规范

Specification Status Comment
HTML Editing APIs
Selection.rangeCount
Editor's Draft Initial definition
Selection API
Selection.rangeCount
Working Draft Current

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (Yes) (Yes) (Yes) ?
Feature Android Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Basic support ? (Yes) 1.0 ? ? ?

See also