这是我的配置:
"content_scripts": [
{
"matches": ["https://www.baidu.com/"],
"js": ["./baidu/baidu.js"]
}
]
这是我的baidu.js
// #region delete useless DOM
const deleteIdList = [
'#s_top_wrap',
'#bottom_layer',
'#lm-new',
'#s-top-left',
'#u1',
'#s-hotsearch-wrapper',
'#s_side_wrapper'
];
deleteIdList.forEach(v => {
const element = document.querySelector(v);
element.style.display = 'none';
// element.parentNode.removeChild(element);
});
我想要的只是非常简单,我只是希望当我访问baidu.com
时,无用的域可以被删除(或者隐藏)。我的问题是,当我的配置工作,但无用的多姆会闪现在开始。然后那些就消失了。我希望当我看到网络,一切都好。
我尝试将属性run_at
指定为document_start
。那么我的js文件就不能工作了。
我怎么能做到呢?(在FireFox浏览器中测试)
发布于 2020-06-21 06:57:26
在内容脚本声明中的"run_at": "document_start"
是绝对必须的。
当页面为空时,内容脚本将运行,因此我们还需要以下内容之一:
document
、example上使用MutationObserver
来观察正在构建的页面,检查添加的节点并隐藏与ids.列表匹配的节点。
style
元素。性能方面,它的数量级更快。也更简单。
hideSelectors(‘s_top_side’,#s_top_layer‘,#lm’,#s-左上角‘,'#u1',’#s-热搜索-包装‘,'#s_side_wrapper',’#s_side_wrapper‘,);函数hideSelectors(sels) { const el = document.createElement('style ');el.textContent = sels.join(',’)+{ display: none!//此时不存在,因此尽管违反了document.documentElement.appendChild(el);},但在DOM中仍然允许添加//
https://stackoverflow.com/questions/62495205
复制相似问题