我为内容可编辑div创建了一个观察者。 当我按下空格键时,它会被调用两次。
// Write TypeScript code!
var appDiv: HTMLElement = document.createElement('div');
document.getElementById('app').appendChild(appDiv)
appDiv.setAttribute('contenteditable','true');
appDiv.innerText = 'Hello there';
var config = {
subtree: true,
characterData: true,};
// Callback function to execute when mutations are observed
var callback = function(mutationsList, observer) {
for(var mutation of mutationsList) {
console.log(mutation)
}
};
// Create an observer instance linked to the callback function
var observer = new MutationObserver(callback);
// Start observing the target node for configured mutations
observer.observe(appDiv, config);
任何人都可以解释一下吗?这是预期的行为吗?
现场演示:stackblitz
如果您打开console
并打了一个空格,就会看到有两个MutationRecord
我在Chrome上进行了测试,但是在Firefox上,我得到了三个记录,而不是两个记录。
PS:对于其他任何敲击的按键,您都有一个突变记录,但是,如果在按下空格键后再按另一个字母,在这种情况下,您还会得到两个突变记录。