you*_*rrr 5 javascript dom range
在Javascript中,创建对象似乎有两种方法Range
:
var range = document.createRange()
: 调用createRange()
一个Document
对象。更多信息var range = new Range()
: 使用Range()
构造函数。更多信息样式 #1 的 MDN 注释:
创建 Range 后,您需要先设置其边界点,然后才能使用其大部分方法。
风格 #2 的 MDN 说:
Range() 构造函数返回一个新创建的 Range 对象,其起点和终点是全局 Document 对象。
但这并不能完全告诉我两者之间有什么区别。
然而,在撰写本文时,MDN 顶部有一条关于样式 #2 的注释,内容如下:
这是一项实验技术
而且,重要的是,目前 IE 似乎还不支持创建Range
对象的 style #2 语法。
除此之外,两者之间在创建方式Range
或创建对象的任何一种方式返回的内容方面是否存在任何(细微的)差异Range
?
如果我误用了任何术语,请提前道歉——如果我误用了,请纠正我,因为我对这些概念还很陌生。
谢谢!
基于DOM标准W3C规范,两者之间没有区别(强调我的):
调用 createRange() 方法时,必须返回一个以 (this, 0) 作为起点和终点的新生存范围。
注意:可以使用 Range() 构造函数来代替。
事实上, 和 都document.createRange()
返回new Range()
一个对象并且startOffset
设置endOffset
为 0:
{
collapsed: true,
commonAncestorContainer: /* object of type document */,
endContainer: /* object of type document */,
endOffset: 0,
startContainer: /* object of type document */,
startOffset: 0
}
Run Code Online (Sandbox Code Playgroud)