- From: <tng@ca.ibm.com>
- Date: Fri, 1 Dec 2000 12:22:43 -0500
- To: www-dom@w3.org
Hi, I have a question regarding the range boundary point update after insertion: Consider the following case: <root>hello</root> Scenario 1: rangeA is set as: start container: hello start offset: 1 end container: hello end offset: 5 Then after inserting the node <foo/> (rangeA.insertNode(foo);), the document has: <root>h<foo/>ello</root> And rangeA is updated as: start container: h start offset: 1 end container: ello end offset: 4 which is correct. Scenario 2: What about if rangeA was instead set as start container: hello start offset: 1 end container: root end offset: 1 which in fact covers the same range of text as in the first scenario. But after rangeA.insertNode(foo): <root>h<foo/>ello</root> Should rangeA become: start container: h start offset: 1 end container: root end offset: 3 or start container: h start offset: 1 end container: root end offset: 1 ?? According to the spec, it says: The only case in which the boundary-point will be changed after the insertion is when the boundary-point and the insertion point have the same container [p.32] and the offset [p.32] of the insertion point is strictly less than the offset [p.32] of the Range's boundary-point. So sounds like the latter one (end offset remains not changed) should happen for scenario 2 since the end boundary-point and the insertion point did not have same container ... Thus rangeA becomes covering nothing after insertion in scenario 2; while in the first scenario, rangeA is updated and covers "</foo>ello" after insertion. Is this correct? Does it make sense? Thanks! Regards, Tinny Ng XML Parsers Development IBM Toronto Laboratory, email: tng@ca.ibm.com
Received on Friday, 1 December 2000 12:23:13 UTC