async function runTests() { vartextarea = SpecialPowers.wrap(document.getElementById("textarea")); textarea.focus();
var editor = textarea.editor; var selectionPrivate = editor.selection;
// Move caret to the end of the textarea
synthesizeMouse(textarea, 290, 10, {});
is(textarea.selectionStart, 3, "selectionStart should be 3 (after \"foo\")");
is(textarea.selectionEnd, 3, "selectionEnd should be 3 (after \"foo\")");
// This test **was** trying to check whether a selection listener which
// runs while an editor handles an edit action does not stop handling it.
// However, this selection listener caught previous selection change
// notification immediately before synthesizing the `Enter` key press
// unexpectedly. And now, selection listener may not run immediately after
// synthesizing the key press. So, we don't need to check whether a
// notification actually comes here.
let selectionListener = {
notifySelectionChanged() {
ok(true, "selectionStart: " + textarea.selectionStart);
ok(true, "selectionEnd: " + textarea.selectionEnd);
},
};
selectionPrivate.addSelectionListener(selectionListener);
synthesizeKey("KEY_Enter");
is(textarea.selectionStart, 4, "selectionStart should be 4");
is(textarea.selectionEnd, 4, "selectionEnd should be 4");
is(textarea.value, "foo\n", "The line break should be appended");
selectionPrivate.removeSelectionListener(selectionListener);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.