Есть ли способ внедрить CSS на конкретном веб-сайте с помощью nsIStyleSheetService? - PullRequest
0 голосов
/ 26 февраля 2011

Я пытаюсь внедрить файл таблицы стилей, используя 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 Ответ

1 голос
/ 28 февраля 2011

Прежде всего вы, вероятно, захотите указать USER_SHEET вместо AGENT_SHEET. Во-вторых, вы должны указать, что применяется в вашей таблице стилей , как этот код . Более подробную информацию можно найти здесь .

...