Files
ladybird/Tests/LibWeb/Text/input/UIEvents/KeyEvent-cancelled.html
Timothy Flynn 3925317c11 LibWeb: Fire keydown and keypress events sooner
Fire the events before handling any close requests or selection changes.
Pages must have an opportunity to cancel the events.
2024-10-09 19:10:02 +02:00

47 lines
1.2 KiB
HTML

<input id="input" />
<script src="../include.js"></script>
<script>
test(() => {
let input = document.getElementById("input");
input.value = "You can't change me!";
input.focus();
input.select();
let shouldCancelKeyDown = false;
let shouldCancelKeyPress = false;
input.addEventListener("keydown", e => {
println(`keydown ${e.key}`);
if (shouldCancelKeyDown) {
println("cancel keydown");
e.preventDefault();
}
});
input.addEventListener("keypress", e => {
println(`keypress ${e.key}`);
if (shouldCancelKeyPress) {
println("cancel keypress");
e.preventDefault();
}
});
shouldCancelKeyDown = true;
shouldCancelKeyPress = false;
internals.sendText(input, "A");
println(input.value);
shouldCancelKeyDown = false;
shouldCancelKeyPress = true;
internals.sendText(input, "B");
println(input.value);
shouldCancelKeyDown = false;
shouldCancelKeyPress = false;
internals.sendText(input, "C");
println(input.value);
});
</script>