2011-12-04 14 views

Odpowiedz

6

W dodatku na SDK 1.14 jest eksperymentalny (API mogą ulec zmianie) wsparcie to w module page-mod:

var pageMod = require("sdk/page-mod").PageMod({ 
    include: "*", 
    contentStyleFile: require("sdk/self").data.url("my-style.css") 
}); 

Zobacz Modifying Web Pages Based on URL dla rozbudowanego przewodnika po użyciu page-mod.

Istnieje a page on the Addon SDK's wiki omawianie problemów z bieżącą implementacją, chociaż wydaje się nieco przestarzałe.

Pod maską używa nsIDOMWindowUtils .loadSheet(), aby dodać arkusz stylów bez dotykania DOM strony. (Ten interfejs API została dodana w Firefoksie 18, patrz bug 737003. Przedtem trzeba było użyć nsIStyleSheetService który był podobny, ale nie kartę-specyficzny.)


Przed że można użyć treści skryptu strony-mod do wstawienia element łącza lub stylu (example). [edytuj] dzięki komentarzowi lwburka, oto bardziej rozbudowany rozbudowany opis w Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox By Mark Pilgrim: "Alter a Page's Style" section.

+0

To jest niemożliwe dla mnie do korzystania XPCOM ponieważ używam SDK appbuilder – italiano40

+1

@ italiano40: zachować przedstawieniu " SDK aplikacji ". Jeśli masz na myśli dodatkowy pakiet SDK, użyj poprawnego hasła. Możliwe jest użycie komponentów XPCOM w dodatkowym pakiecie SDK ('require ('chrome')'), ale jest to zaawansowany temat i unieważnia zgodność w przód, która gwarantuje, że dodatek SDK zwykle dostarcza. – Nickolay

+1

Patrz także: http://books.google.com/books?id=KWRE2C_S4YsC&pg=PA19&lpg=PA19&dq=mark+pilgrim+add+Global+Style&source=bl&ots=SnfX5Ad2WO&sig=CKoF9A0Ala96vphTeU4mK2dbMe4&hl=en&ei=GJ3iTpeJKKK2sQLBkMDvBQ&sa=X&oi=book_result&ct=result&resnum= 1 & ved = 0CCQQ6AEwAA # v = onepage & q & f = false –

1

Aby wstawić CSS z main.js można teraz używać "page-mod":

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

pageMod.PageMod({ 
    include: "*.org", 
    contentStyleFile: data.url("my-page-mod.css") 
}); 
+0

Dzięki za wzmiankę o tym! Zaktualizowałem swoją odpowiedź na nowszą wersję Addon SDK. – Nickolay

Powiązane problemy