mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-15 15:42:52 +00:00
71 lines
2.2 KiB
HTML
71 lines
2.2 KiB
HTML
<input type="text" id="text-input">
|
|
<input type="date" id="date-input">
|
|
<textarea id="textarea">some
|
|
text</textarea>
|
|
<script src="../include.js"></script>
|
|
<script>
|
|
asyncTest(async done => {
|
|
let textInput = document.getElementById('text-input');
|
|
let dateInput = document.getElementById('date-input');
|
|
let textarea = document.getElementById('textarea');
|
|
|
|
const dumpSelection = (element) => {
|
|
println(`${element.id} selectionStart: ${element.selectionStart} selectionEnd: ${element.selectionEnd} selectionDirection: ${element.selectionDirection}`);
|
|
};
|
|
|
|
dumpSelection(textInput);
|
|
dumpSelection(dateInput);
|
|
dumpSelection(textarea);
|
|
|
|
textInput.value = 'Well hello friends';
|
|
dumpSelection(textInput);
|
|
|
|
try {
|
|
dateInput.selectionStart = 0;
|
|
} catch (e) {
|
|
println(`date input setting selectionStart error: ${e}`);
|
|
}
|
|
|
|
|
|
textInput.addEventListener('select', e => println(`select event fired: ${e.target.selectionStart} ${e.target.selectionEnd}`));
|
|
const waitForSelect = (element) => {
|
|
return new Promise(resolve => {
|
|
const handler = () => {
|
|
element.removeEventListener('select', handler);
|
|
resolve();
|
|
};
|
|
element.addEventListener('select', handler);
|
|
});
|
|
};
|
|
|
|
textInput.select();
|
|
await waitForSelect(textInput);
|
|
dumpSelection(textInput);
|
|
|
|
textInput.setSelectionRange(2, 4, 'forward');
|
|
await waitForSelect(textInput);
|
|
dumpSelection(textInput);
|
|
|
|
textInput.selectionStart = 1;
|
|
await waitForSelect(textInput);
|
|
dumpSelection(textInput);
|
|
|
|
textInput.selectionEnd = 5;
|
|
await waitForSelect(textInput);
|
|
dumpSelection(textInput);
|
|
|
|
textInput.selectionStart = 6;
|
|
await waitForSelect(textInput);
|
|
dumpSelection(textInput);
|
|
|
|
textInput.selectionDirection = 'backward';
|
|
await waitForSelect(textInput);
|
|
dumpSelection(textInput);
|
|
|
|
textarea.addEventListener('select', e => {
|
|
dumpSelection(textarea);
|
|
done();
|
|
});
|
|
textarea.select();
|
|
});
|
|
</script>
|