通过MutationObserver 开发chrome浏览器扩展的实例
2025-09-21 17:45:58 466 分享链接 开发笔记 浏览器扩展
在content.js中添加如下代码
try {
console.log('测试脚本执行');
const observer = new MutationObserver((mutationsList) => {
console.log('MutationObserver 回调函数被调用');
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
const addedNodes = Array.from(mutation.addedNodes);
nodesAdded(addedNodes);
const removedNodes = Array.from(mutation.removedNodes);
nodesRemoved(removedNodes);
}else if(mutation.type === 'attributes'){
nodeAttributes(mutation);
}
}
});
// 开始监听 document.body 及其子节点的变化
observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeOldValue: true, attributeFilter: ['src'] });
} catch (error) {
console.error('脚本执行被中断:', error);
}
// 新增的节点(子节点的添加)
function nodesAdded(addedNodes){
//console.log('新增的节点:', addedNodes);
nodesAddedImages(addedNodes);
}
// 移除的节点(子节点的删除)
function nodesRemoved(removedNodes){
//console.log('移除的节点:', removedNodes);
}
// 单个节点的属性变化
function nodeAttributes(mutation){
// 获取属性发生变化的节点
const changedNode = mutation.target;
console.log('属性变化的节点:', changedNode);
// 其他关键信息
const changedAttrName = mutation.attributeName; // 变化的属性名(如 "class"、"style")
const oldValue = mutation.oldValue; // 变化前的属性值(需配置 attributeOldValue: true 才会有值)
console.log(`节点 ${changedNode.tagName} 的 ${changedAttrName} 属性发生变化,旧值:${oldValue}`);
}
// 筛选出新增的图片节点
function nodesAddedImages(addedNodes){
addedNodes.forEach(node => {
// 先确保是元素节点(避免非元素节点调用 matches 报错)
if (node.nodeType === 1) {
if (node.matches('div[data-testid="message_image_content"] picture img[alt="image"]')) {
console.log('匹配的 img 节点:', node);
}
}
});
}
最近更新
- 2026-03-16 18:06
- 故事文本分镜分析与拆解模板
- 2026-03-15 00:37
- 文生图提示词优化技巧:具象化描述、要有画面感
- 2026-03-12 17:04
- 除了国风动漫还有哪些常见的动漫风格适合 AI 绘画?
- 2026-03-12 16:35
- 水墨写实、水墨写意有什么区别,还有哪些水墨家族?
- 2026-03-12 16:22
- 分享5个治愈系漫剧高频场景提示词,包括(色调、光影、风格、质感)
- 2026-03-12 16:06
- 分享10个宅斗漫剧高频场景提示词,包括(色调、光影、风格、质感)
- 2026-03-12 15:56
- 分享10个古言漫剧高频场景提示词,包括(色调、光影、风格、质感)
- 2026-03-10 19:11
- 按人物主体公式写10个与李白同时期不同诗人不同环境的提示词(唯美古风)
- 2026-03-10 18:58
- 即梦唯美古风专用、可直接复制粘贴的常用词库
- 2026-03-10 18:44
- 即梦文生图提示词12套主体完整公式(全品类、无遗漏)