javascript - JavaScript/DOM:MutationObserver 检测 DOM 树中任何位置的 `lang` 属性的变化
问题描述
是否可以lang
使用一个 MutationObserver 检测文档中任何位置的属性更改?我想也许像下面这样的东西可以解决问题,但它没有按预期工作(只检测根元素的 lang 属性更改)。
// This is NOT working as expected!!!
const observer = new MutationObserver(() => {
console.log('lang attribute has changed');
});
observer.observe(document, {
attributes: true,
attributeFilter: ['lang'],
subtree: true
// if I add `childList: true` here as sometime suggested on stackoverflow,
// lang attribute changes somewhere deep in the document are
// still not detected.
});
解决方案
以下代码(与问题相同)确实有效,并将检测lang
文档中任何位置的属性更改。但重要的是要知道,只会lang
检测到 light DOM 中的属性变化,而不会观察到 shadow DOM 中的变化。
const observer = new MutationObserver(() => {
console.log('lang attribute has changed');
});
observer.observe(document, {
attributes: true,
attributeFilter: ['lang'],
subtree: true
});
推荐阅读
- c - 我可以避免读取等待输入吗
- loops - WooCommerce 自定义循环 - 属性过滤器不起作用
- .htaccess - 在 opencart 中未检测到 HTTP 安全标头
- c# - 在 C# 中创建共享帐户签名
- sql - SQL - 错误代码“查询块的结果列数不正确”
- matlab - 相同的 S-Function 使用了两次,一个有效,一个无效
- docker - 找不到 docker 容器 url
- typescript - 如果输入有几个,有没有办法将 tsc 输出重定向到一个目录?
- firebase - 如何在 Firebase 中使用 Telegraf(电报)?
- android - 剑道下拉列表在android webview中不起作用