2012-03-26 5 views
0

У меня возникла проблема с применением стилей CSS для моих элементов расширения Firefox.Применить CSS-таблицу стилей к расширению Firefox

chrome 
    -content ->attach.xul,cap.js 
    -skin->overlay.css 

В cap.js Я создаю таблицу и добавляю ее к телу страницы. Я попытался создать эту таблицу. Однако, когда я тестировал это расширение, я обнаружил, что элементы таблицы и кнопки в расширении меняются в соответствии с сайтом, который я посещаю. Я применил это как встроенный стиль; но дизайн все еще меняется.

Я попытался зарегистрировать скин для этого расширения, но стили не применялись.

В attach.xul у меня есть это:

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://capture/skin/overlay.css" type="text/css"?> 

В файле манифеста я это:

content  capture chrome/content/ 
overlay chrome://browser/content/browser.xul chrome://capture/content/attach.xul 
+0

Правильно ли я понял? Вы применяете 'overlay.css' к браузеру XUL (косвенно, через' attach.xul'), но ожидаете, что он будет применяться к страницам контента? –

ответ

0

Если ваша цель стилизации содержание страниц, а не добавление стилей пользовательского интерфейса вашего расширение, nsIStyleSheetService - твой друг. Что-то вроде этого:

Components.utils.import("resource://gre/modules/Services.jsm"); 
var styleSheetService = Components.classes["@mozilla.org/content/style-sheet-service;1"] 
            .getService(Components.interfaces.nsIStyleSheetService); 
var uri = Services.io.newURI("chrome://capture/skin/overlay.css", null, null); 
styleSheetService.loadAndRegisterSheet(uri, styleSheetService.USER_SHEET); 

Обязательно используйте @-moz-document в overlay.css так, что применяются ваши стили только на страницах, к которым они принадлежат - эти правила будут применяться ко всем веб-страниц (и даже XUL браузера) в противном случае.

+0

Спасибо wladimir, но я пытаюсь применить стили для своих элементов расширения. это расширение содержит таблицу, вход и кнопки. поэтому у меня есть стили для элементов в таблице стилей [overlay.css], и я хочу использовать его, потому что я пробовал метод выше, и он не работал. – VKGS

+1

@Sekar: Из вашего описания это звучит так, будто вы вставляете эту таблицу в веб-страницу - тогда это уже не «мои элементы расширения». –

+0

Я новичок в этой категории [разработка расширений]. поэтому я выбрал этот метод. но, делая эти проекты внешних веб-сайтов, влияющих на мой дизайн таблицы, даже если я даю встроенные стили. Существуют ли какие-либо методы для создания таблиц. – VKGS

Смежные вопросы