2013-07-19 206 views
0

我已经写了一个chrome的扩展,它为网站'reddit'增加了一些功能。它增加了一个额外的按钮,每个职位有以下jQuery的网站上:Chrome扩展风格没有被注入

...  
$(this).append('<li><span class="grab_button">grab</span></li>'); 
... 

grab_button是新的。它不会在reddit的样式存在,但在扩展样式的镀铬CSS应该加载并未被应用于:

html body span.grab_button { 
     color: #888 !important; 
     font-weight: bold !important; 
     padding: 0 1px !important; 
} 

我已经加入了!important规则,以确保将适用于被覆盖的任何CSS。我已经将这个定义变得非常具体(我可能会将其更具体化,但我不应该)。为什么地球上不适用?如果我使用webkit开发人员工具检查添加的按钮,它会列出所有适用于它的样式,即使是被覆盖的样式,但它也不会显示我自定义样式。

这里是清单的培训相关部分:

"content_scripts": [ 
     { 
      "matches": ["http://www.reddit.com/*"], 
      "js": ["jquery-2.0.3.min.js", "script.js"], 
     "css": ["style.css"] 
     } 
], 

"web_accessible_resources": [ 
     "style.css", 
    "script.js", 
    "jquery-2.0.3.min.js" 
] 

谁能解释这是为什么不工作?

回答

0

您的选择器不正确。您的标记会创建一个类名为grab_button的跨度,但是您的CSS代码与包含该类名的后代的span相匹配。你的CSS选择器的代码应该是:

html body span.grab_button { 

或者更好的,只是:

.grab_button { 

所有的东西之前不需要它,只是使它更慢。

+0

.grab_button自己不起作用。删除该空格不起作用...我已经添加了html身体跨度,试图使它更具体,希望能够修复它,但它没有。 – p0llard

+0

从我可以告诉,应该工作。也许别人会参加,但我没有看到任何明显的东西。 – Fotiman

+0

我知道。它应该工作。我设法通过删除样式表来修复它,并逐个重新创建它,并在每次更改后重新加载扩展。不知道是什么阻止了它的工作。 – p0llard