mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-03 22:59:13 +00:00
We do not fire `beforeinput` events since other browsers do not seem to do so either. The spec asks us to check whether a command's action modified the DOM tree. This means adding or removing nodes and attributes, or changing character data anywhere in the tree. We have `Document::dom_tree_version()` for node updates, but for character data a new version number is introduced that allows us to easily keep track of any text changes in the entire tree.
19 lines
597 B
HTML
19 lines
597 B
HTML
<script src="../include.js"></script>
|
|
<div contenteditable="true">foobar</div>
|
|
<script>
|
|
test(() => {
|
|
var divElm = document.querySelector('div');
|
|
divElm.addEventListener('input', (e) => println('input triggered'));
|
|
|
|
// Put cursor between 'foo' and 'bar'
|
|
var range = document.createRange();
|
|
getSelection().addRange(range);
|
|
range.setStart(divElm.childNodes[0], 3);
|
|
range.setEnd(divElm.childNodes[0], 3);
|
|
|
|
// Insert text
|
|
document.execCommand('insertText', false, 'baz');
|
|
|
|
println(divElm.innerHTML);
|
|
});
|
|
</script>
|