2013-04-26 52 views
0

我正在通過Mozilla Addon Builder構建一個Firefox插件https://builder.addons.mozilla.org頁面CSS沒有改變,什麼不工作?

我開始真的很基本,我認爲它不會比將google.com更改爲紅色更簡單。我讓CSS改變了body,html和div,並添加了重要的內容,所以我可以確定,如果樣式表顯示,它會改變背景紅色,並覆蓋當前的CSS。

但是,當我激活它(通過安裝插件的測試按鈕),沒有任何反應。 CSS不會被注入到頁面中。

這裏是擴展的樣子:

image 1

image 2

下面是代碼:

main.js

var data = require("sdk/self").data; 
var pageMod = require("sdk/page-mod"); 

pageMod.PageMod({ 
    include: "*.google.com/*", 
    contentStyleFile: data.url("data/style.css") 
}); 

的style.css

html, body, div { 
    background: red !important; 
} 

我用下面的網址也試過,都沒有工作之一:

我也試圖改變下列地點的style.css,這並沒有什麼差別之一:

  • 的style.css
  • data/style.css
  • ../data/style.css

我也嘗試從數據和pagemod變量中刪除sdk /,但那也不起作用。

爲什麼它不起作用,我該如何解決它?

回答

0

Match patterns只包含一個*

模式"*.google.com"匹配您列表中的所有Google網址。匹配模式也可以是正則表達式。你可以用

pageMod.PageMod({ 
    include: /.*\/(\/\w*\.)?google\.[A-Za-z]{2,3}\/.*/, 
    contentStyleFile: data.url("style.css") 
}); 
+0

清楚,其實並不重要,因爲剛剛http://google.com沒有任何通配符還是什麼都不做匹配http://google.ie和所有其他google.*的。 – progammingaddict 2013-04-28 15:59:13

+0

匹配模式中沒有通配符只匹配與第一個字符到最後一個字符拼寫完全相同的URL。 兩個通配符無效,結果不匹配,如您最初發布的代碼所示。 0和2之間的快樂介質是1.一個通配符 - 「* .example.com」匹配所有的 'http:// example.com /' 'http:// foo.example.com/ 'https:// example.com /' 'http:// example.com/foo' 'ftp:// foo.example.com /' 只有一個通配符的附加組件副本(一切都一樣)在https://builder.addons.mozilla.org/package/184965/latest/ – Lori 2013-04-29 19:32:53

+0

不,如我所說,我嘗試了一些不同於上面的代碼。反正這不起作用。改變模式不是它不工作的原因。也許拿出不同的解決方案? – progammingaddict 2013-04-30 00:43:30

相關問題