Contents
.. index:: K.range
创建或选取KRange对象,KRange是原生Range的封装,包含大部分W3C Range接口,此外还有包含KRange和原生Range之间的转换功能。
示例:
range = K.range(document);
range = K.range(originalRange);
Note
DOM Level 2 Range Reference: http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
.. index:: START_TO_START
调用 :ref:`KRange.compareBoundaryPoints` 时使用。
.. index:: START_TO_END
调用 :ref:`KRange.compareBoundaryPoints` 时使用。
.. index:: END_TO_END
调用 :ref:`KRange.compareBoundaryPoints` 时使用。
.. index:: END_TO_START
调用 :ref:`KRange.compareBoundaryPoints` 时使用。
.. index:: startContainer
range的开始节点。
.. index:: startOffset
range的开始节点位置。
.. index:: endContainer
range的结束节点。
.. index:: endOffset
range的结束节点的位置。
.. index:: collapsed
range的折叠状态,当range处于折叠状态时true,否则false。。
.. index:: commonAncestor
取得KRange的共同祖先。
示例:
var range = K.range(document);
var element = range.commonAncestor();
.. index:: setStart
设置KRange的开始节点和位置。
示例:
var range = K.range(document);
range.setStart(document.body, 1);
.. index:: setEnd
设置KRange的结束节点和位置。
示例:
var range = K.range(document);
range.setEnd(document.body, 2);
.. index:: setStartBefore
将Node的开始位置设置成Range的开始位置。
示例:
var range = K.range(document);
range.setStartBefore(K('div#id')[0]);
.. index:: setStartAfter
将Node的结束位置设置成Range的开始位置。
示例:
var range = K.range(document);
range.setStartAfter(K('div#id')[0]);
.. index:: setEndBefore
将Node的开始位置设置成Range的结束位置。
示例:
var range = K.range(document);
range.setEndBefore(K('div#id')[0]);
.. index:: setEndAfter
将Node的结束位置设置成Range的结束位置。
示例:
var range = K.range(document);
range.setEndAfter(K('div#id')[0]);
.. index:: selectNode
将Node的开始位置和结束位置分别设置成Range的开始位置和结束位置。
示例:
var range = K.range(document);
range.selectNode(K('div#id')[0]);
.. index:: selectNodeContents
将Node的子节点的开始位置和结束位置分别设置成Range的开始位置和结束位置。对于文本节点和无结束符的元素,相当于使用selectNode。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
.. index:: collapse
折叠KRange,当toStart为true时向前折叠,false时向后折叠。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
range.collapse(true);
.. index:: compareBoundaryPoints
根据how参数比较2个range的边界。
how参数的方向规则:
示例:
var range1 = K.range(document);
range1.selectNode(K('div#id')[0]);
var range2 = K.range(document);
range2.selectNode(K('div#id p')[0]);
var cmp = range1.compareBoundaryPoints(K.START_TO_START, range2);
.. index:: cloneRange
复制KRange。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
var newRange = range.cloneRange();
.. index:: toString
返回KRange的文本内容。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
var text = range.toString();
.. index:: cloneContents
复制并返回KRange的内容。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
var fragment = range.cloneContents();
.. index:: deleteContents
删除KRange的内容。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
range.deleteContents();
.. index:: extractContents
删除并返回KRange的内容。
示例:
var range = K.range(document);
range.selectNodeContents(K('div#id')[0]);
var fragment = range.extractContents();
.. index:: insertNode
将指定Node插入到KRange的开始位置。
示例:
var range = K.range(document);
range.selectNodeContents(K('#id1')[0]);
range.insertNode(K('#id2')[0]);
.. index:: surroundContents
用指定Node围住KRange的内容。
示例:
var range = K.range(document);
range.selectNodeContents(K('#id1')[0]);
range.surroundContents(K('#id2')[0]);
.. index:: isControl
判断当前KRange是否可选择的Contral Range。
示例:
var range = K.range(document);
range.selectNodeContents(K('#id1')[0]);
var bool = range.isControl();
.. index:: get
将KRange转换成原生Range并返回。
示例:
var range = K.range(document);
range.selectNodeContents(K('#id1')[0]);
var originalRange = range.get();
.. index:: html
返回KRange内容的HTML。
示例:
var range = K.range(document);
range.selectNodeContents(K('#id1')[0]);
var html = range.html();
.. index:: down
降低range的位置。
示例:
// <p><strong><span>123</span>abc</strong>def</p>
range.setStart(strong, 1);
range.down();
console.log(range.startContainer, range.startOffset); // print "abc", 0
.. index:: up
提高range的位置。
示例:
// <p><strong><span>123</span>abc</strong>def</p>
range.setStart("abc", 0);
range.up();
console.log(range.startContainer, range.startOffset); // print strong, 1
.. index:: enlarge
扩大边界。
示例:
// <p><strong><span>123</span>abc</strong>def</p>
range.setStart("123", 0);
range.setEnd("abc", 3);
range.enlarge();
console.log(range.startContainer, range.startOffset); // print p, 0
console.log(range.endContainer, range.endOffset); // print p, 1
.. index:: shrink
缩小边界。
示例:
// <p><strong><span>123</span>abc</strong></p>
range.setStart(p, 0);
range.setEnd(p, 1);
range.shrink();
console.log(range.startContainer, range.startOffset); // print "123", 0
console.log(range.endContainer, range.endOffset); // print "abc", 3
.. index:: createBookmark
创建bookmark。(插入临时节点标记位置)
示例:
bookmark = range.createBookmark();
console.log(bookmark); // print {start: startNode, end: endNode}
bookmark = range.createBookmark(true);
console.log(bookmark); // print {start: 'start_node_id', end: 'end_node_id'}
.. index:: moveToBookmark
根据bookmark重新设置range。
示例:
bookmark = range.createBookmark();
// 在这里执行一些改变DOM的处理
// ...
range.moveToBookmark(bookmark);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。