зеркало из https://github.com/mozilla/pjs.git
40 строки
1.5 KiB
HTML
40 строки
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html class="reftest-wait">
|
|
<head>
|
|
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
|
</head>
|
|
<body onload="doTest()">
|
|
<input type=text>
|
|
<script>
|
|
function doTest() {
|
|
netscape.security.PrivilegeManager.enablePrivilege(
|
|
"UniversalXPConnect");
|
|
function enableCaret(aEnable) {
|
|
var selCon = editor.selectionController;
|
|
selCon.setCaretEnabled(aEnable);
|
|
}
|
|
|
|
var d = document.querySelector("input");
|
|
d.value = "a";
|
|
d.focus();
|
|
var editor = d.QueryInterface(Components.interfaces.nsIDOMNSEditableElement).editor;
|
|
var sel = editor.selection;
|
|
var t = editor.rootElement.firstChild;
|
|
sel.collapse(t, 1); // put the caret at the end of the div
|
|
setTimeout(function() {
|
|
netscape.security.PrivilegeManager.enablePrivilege(
|
|
"UniversalXPConnect");
|
|
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>
|