Javascript 镀铬扩展插件样式内联不起作用
我试着用谷歌搜索,但似乎找不到答案 我正在尝试制作一个Chrome扩展,它只做一件事,将style.display属性更改/插入到一个或多个元素。通常这是微不足道的,但出于某种原因,我无法让它与扩展一起工作 manifest.json文件 还有myapp.jsJavascript 镀铬扩展插件样式内联不起作用,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我试着用谷歌搜索,但似乎找不到答案 我正在尝试制作一个Chrome扩展,它只做一件事,将style.display属性更改/插入到一个或多个元素。通常这是微不足道的,但出于某种原因,我无法让它与扩展一起工作 manifest.json文件 还有myapp.js 但是它没有做任何事情。有可能在触发document\u end之后,页面以编程方式添加元素。如果您注入CSS而不是脚本,这可以解决,整个任务也可以简化 这将完成您尝试执行的操作,除非页面本身以编程方式重写此规则: 在清单文件中,更改内容
但是它没有做任何事情。有可能在触发
document\u end
之后,页面以编程方式添加元素。如果您注入CSS而不是脚本,这可以解决,整个任务也可以简化
这将完成您尝试执行的操作,除非页面本身以编程方式重写此规则:
- 在清单文件中,更改
,如下所示:内容\u脚本
"content_scripts": [ { "matches": ["https://www.facebook.com/*"], "css": ["myapp.css"] } ]
- 并使用以下
:myapp.css
#rightCol{ 显示:无!重要; }
- 很抱歉耽误了回来。事实证明它不是脚本,出于某种原因,每次更改后我都必须重新启动chrome
之后,它不会总是隐藏我通过将其添加到myapp.css中修复的条
document.addEventListener("DOMSubtreeModified", listener, false);
然后隐藏在侦听器函数中(在try/catch中,以防它不在屏幕上)
现在工作完美,甚至在Chrome网络商店中:)
对于任何感兴趣的人,这里有一个链接:1)如果您在chrome开发者工具中手动执行相同的操作,您是否获得了所需的任务?2) 扩展运行后,在devtool中选中此#rightCol项,是否可以看到display:none?是否在内容脚本中使用了一种机制,以便它等待页面的其余部分加载(加载事件侦听器或
$(document).ready()
)?这样会覆盖现有的css?我不知道这是可能的:)@bensonsearch这要看情况而定,但在大多数情况下是的。参见CSS特异性的定义。(!important
+id)获胜,除非页面本身使用设置样式属性!重要信息
。你不必重新启动Chrome,1)在扩展页面上重新加载扩展,2)刷新页面以便注入新内容脚本就足够了。这是我最初的想法和正在做的事情,但直到我重新启动Chrome才起作用,现在对于更新来说,重新加载非常奇怪
"content_scripts": [
{
"matches": ["https://www.facebook.com/*"],
"css": ["myapp.css"]
}
]
document.addEventListener("DOMSubtreeModified", listener, false);