有没有办法使用nsIStyleSheetService在特定网站上注入CSS?

时间:2011-02-26 17:54:07

标签: firefox firefox-addon stylesheet

我正在尝试使用nsIStyleSheetService注入样式表文件。

当我这样做时,它会在所有页面上注入样式,但我想仅针对某些网站。

有可能吗?

我的代码:

LoadStyleSheet = function(source) {
     var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
                .getService(Components.interfaces.nsIStyleSheetService);
     var ios = Components.classes["@mozilla.org/network/io-service;1"]
                .getService(Components.interfaces.nsIIOService);
     var uri = ios.newURI("chrome://addon/content/css/" + source, null, null);

     if(!sss.sheetRegistered(uri, sss.AGENT_SHEET))
         sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
};

if (/^https?:\/\/[^\/]+google.*/i.test(window.location.href))
{
    LoadStyleSheet("config.css"); // register the style on all pages
    // while my target is just Google
}

1 个答案:

答案 0 :(得分:1)

首先,您可能希望指定USER_SHEET而不是AGENT_SHEET。其次,您必须指定样式表like this code中应用的内容。更多信息can be found here