ChromeV127绑定DOMNodeInserted事件失败

394 阅读1分钟

Chome升级到127版本后,绑定DOMNodeInserted事件失败,控制台报错:

[Deprecation] Listener added for a 'DOMNodeInserted' mutation event. Support for this event type has been removed, and this event will no longer be fired. See chromestatus.com/feature/508… for more information.

通过给的链接查看详情后,发现由于页面性能(page performance)等原因,Chrome已经废弃了以下事件:

DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument, and DOMCharacterDataModified,

解决方案:

1、修改修改系统设置,重新启用已废弃或移除的事件

参考:Chrome Enterprise policy list and management | Documentation

windows系统需要修改注册表,Software\Policies\Google\Chrome\MutationEventsEnabled,设置为:0x00000001

Mac/Linux preference name:MutationEventsEnabled 值:true

此方法为临时解决方案,Chrome将在135版本后完全取消对MutationEvents的支持。

2、迁移代码

【方法一】、使用MutationObserver 代替,具体参考以下链接

documentation forMutationObserveris located on MDN

【方法二】、使用Polyfill

github.com/mfreed7/mut…

<script src="mutation_events.min.js"></script>
<div id=target></div>
<script>
  target.addEventListener('DOMNodeInserted',() => {
    // your code
  });
</script>
> > ```