mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 23:47:45 +00:00
LibWeb: Emit "selectionchange" event on document
This commit is contained in:
parent
9ce8189f21
commit
cd7b5b18e4
7 changed files with 71 additions and 0 deletions
46
Tests/LibWeb/Text/input/selectionchange-event.html
Normal file
46
Tests/LibWeb/Text/input/selectionchange-event.html
Normal file
|
@ -0,0 +1,46 @@
|
|||
<script src="include.js"></script>
|
||||
<style>
|
||||
#editable {
|
||||
border: 1px solid #ccc;
|
||||
font-size: 30px;
|
||||
width: 400px;
|
||||
height: 100px;
|
||||
}
|
||||
</style>
|
||||
<div id="editable" contenteditable="true">
|
||||
Ladybird is an ongoing project to build an independent web browser from scratch.
|
||||
</div>
|
||||
<script>
|
||||
asyncTest(async done => {
|
||||
function elementToString(e) {
|
||||
let element_string = `<${e.nodeName} `;
|
||||
if (e.id) element_string += `id="${e.id}" `;
|
||||
element_string += ">";
|
||||
return element_string;
|
||||
}
|
||||
|
||||
document.addEventListener("selectionchange", function (e) {
|
||||
const selection = window.getSelection();
|
||||
println(
|
||||
`selectionchange anchorNode=${elementToString(selection.anchorNode)} anchorOffset=${
|
||||
selection.anchorOffset
|
||||
} type=${selection.type} focusNode=${elementToString(
|
||||
selection.focusNode
|
||||
)} focusOffset=${selection.focusOffset} isCollapsed=${selection.isCollapsed}`
|
||||
);
|
||||
});
|
||||
|
||||
const editable = document.getElementById("editable");
|
||||
|
||||
println("Events:");
|
||||
|
||||
internals.click(20, 10);
|
||||
await new Promise(resolve => setTimeout(resolve, 0));
|
||||
internals.click(30, 10);
|
||||
await new Promise(resolve => setTimeout(resolve, 0));
|
||||
internals.click(40, 10);
|
||||
await new Promise(resolve => setTimeout(resolve, 0));
|
||||
|
||||
done();
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue