2013-03-27 45 views
3

我試圖將JS和CSS注入YouTube頁面。我能夠注入JS,但在注入CSS時看不到效果。我是在做一些不正確的事情還是YouTube以某種方式限制我?似乎無法將CSS注入YouTube?

這裏是我的manifest.json的相關部分:

"content_scripts": [ 
    { 
     "matches": ["http://www.youtube.com/watch?v*"], 
     "css": ["ChromeExtension/css/inject.css"], 
     "js": ["ChromeExtension/js/thirdParty/underscore.js", "ChromeExtension/js/thirdParty/jquery.js", "ChromeExtension/js/inject.js"] 
    } 
    ] 

我看到所有注入適當的JS,但與CSS沒有效果。我的CSS沒有出現已在所有注入:

enter image description here

UPDATE:「重要」

好奇..注入此代碼的工作,但我也試圖適用於所有的CSS屬性。這兩種方法有不同效果,這些效果與StackOverflow上提供的其他解決方案相反。

我有這個更大的成功,但至於爲什麼更簡明的定義失敗仍然好奇:

var style = document.createElement('link'); 
style.rel = 'stylesheet'; 
style.type = 'text/css'; 
style.href = chrome.extension.getURL('ChromeExtension/css/inject.css'); 
document.head.appendChild(style); 
+0

'!重要的'將成爲我事實上的建議。奇怪的確如此... – 2013-03-27 05:14:49

+0

是的同意。我測試的CSS只是body {background-color:#000!important; } – 2013-03-27 05:21:55

回答

0

沒有必要使用!important,只要確保你在你的CSS有較高的特異性重寫已經存在的內容。如果你看看body的風格,你應該看到類似這樣的東西:enter image description here

這表明正在應用css,剛被覆蓋。改變你的CSS像

body.ltr{ 
    background-color: #000; 
} 

將工作得很好。

編輯: 最重要的是,這個問題可能實際上是匹配模式中的?。對我而言,http:///www.youtube.com/watch*工作,而http:///www.youtube.com/watch?*不工作。至於爲什麼這會影響注入css,但不是js我不知道。