Javascript 什么';document.createRange()和new Range()之间的区别是什么?
在Javascript中,似乎有两种方法可以创建Javascript 什么';document.createRange()和new Range()之间的区别是什么?,javascript,dom,range,Javascript,Dom,Range,在Javascript中,似乎有两种方法可以创建Range对象: var range=document.createRange():在document对象上调用createRange() var range=new range():使用range()构造函数 样式1的MDN注释: 创建范围后,需要先设置其边界点,然后才能使用其大多数方法 style#2的MDN说: Range()构造函数返回一个新创建的Range对象,其开始和结束是全局文档对象 但这并不能确切地告诉我两者之间的区别 然而,在写这
Range
对象:
var range=document.createRange()
:在document
对象上调用createRange()
李>
var range=new range()
:使用range()
构造函数李>
样式1的MDN注释:
创建范围后,需要先设置其边界点,然后才能使用其大多数方法
style#2的MDN说:
Range()构造函数返回一个新创建的Range对象,其开始和结束是全局文档对象
但这并不能确切地告诉我两者之间的区别
然而,在写这篇文章的时候,style#2的MDN顶部有一条注释说:
这是一项实验技术
而且,重要的是,IE目前似乎还不支持style#2用于创建范围
对象的语法
除此之外,在创建范围
的方式或创建范围
对象的任何一种方法返回的内容方面,两者之间是否存在任何(细微)差异
如果我误用了任何术语,请提前道歉——如果我误用了,请纠正我,因为我对这些概念还很陌生
谢谢 基于,两者之间没有差异(强调):
调用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
}