2010-08-23 20:49:15 -07:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html class="reftest-wait">
|
|
|
|
<head>
|
2011-06-29 11:22:39 -07:00
|
|
|
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
2010-08-23 20:49:15 -07:00
|
|
|
</head>
|
|
|
|
<body onload="doTest()">
|
|
|
|
<input type=text>
|
|
|
|
<script>
|
|
|
|
function doTest() {
|
|
|
|
function enableCaret(aEnable) {
|
|
|
|
var selCon = editor.selectionController;
|
|
|
|
selCon.setCaretEnabled(aEnable);
|
|
|
|
}
|
|
|
|
|
|
|
|
var d = document.querySelector("input");
|
|
|
|
d.value = "a";
|
|
|
|
d.focus();
|
2012-09-24 05:46:29 -07:00
|
|
|
var editor = SpecialPowers.wrap(d).QueryInterface(SpecialPowers.Ci.nsIDOMNSEditableElement).editor;
|
2010-08-23 20:49:15 -07:00
|
|
|
var sel = editor.selection;
|
|
|
|
var t = editor.rootElement.firstChild;
|
|
|
|
sel.collapse(t, 1); // put the caret at the end of the div
|
|
|
|
setTimeout(function() {
|
|
|
|
enableCaret(false);enableCaret(true);// force a caret display
|
|
|
|
enableCaret(false); // hide the caret
|
|
|
|
t.replaceData(0, 1, "b"); // replace the text node data
|
|
|
|
// at this point, the selection is collapsed to offset 0
|
|
|
|
synthesizeQuerySelectedText(); // call nsCaret::GetGeometry
|
|
|
|
sel.collapse(t, 1); // put the caret at the end again
|
|
|
|
enableCaret(true); // show the caret again
|
|
|
|
document.documentElement.removeAttribute("class");
|
|
|
|
}, 0);
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|