- From: <bugzilla@jessica.w3.org>
- Date: Tue, 05 Jul 2011 20:40:14 +0000
- To: www-dom@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=13153 Summary: replaceData() should insert before deleting, to give better range mutation behavior Product: WebAppsWG Version: unspecified Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: DOM Core AssignedTo: annevk@opera.com ReportedBy: Simetrical+w3cbug@gmail.com QAContact: member-webapi-cvs@w3.org CC: mike@w3.org, www-dom@w3.org Testcase: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1062 This does replaceData(1, 1, "uu") on a text node "foo". A range collapsed like "fo[]o" then becomes "f[]uuo" per the current spec. This is because first you delete one character, so it becomes "f[]o", then you insert the new characters, and insertions always go after a boundary point. If you instead inserted them before the substring to be deleted, then deleted the substring, it would first be "fuuo[]o", then "fuu[]o". Then the boundary point goes where it logically belongs -- after the replacement for the thing it was already after. The current spec matches the behavior of IE9, Firefox 6.0a2, and Chrome 14 dev (they log "1" in the test). Opera 11.50 matches my proposed behavior (logs "3"). I don't think this would affect compat, so switching to Opera's behavior should be safe. To be clear, I'm asking that the spec be changed to say something like "The replaceData(offset, count, data) method must act as if the insertData() method is invoked with offset and data as arguments followed by the deleteData() method with (offset + data.length) and count as arguments and re-throw any exceptions these methods might have thrown." AFAIK, this should only affect range mutations (for the better) and mutation events (unlikely to make a compat difference, I hope). -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
Received on Tuesday, 5 July 2011 20:40:15 UTC