2011-12-04 14 views
8

के माध्यम से एक वेबपृष्ठ में एक सीएसएस फ़ाइल इंजेक्ट करें मैं फ़ायरफ़ॉक्स एक्सटेंशन लिख रहा हूं और मैं उनके ऐड-ऑन एसडीके का उपयोग कर रहा हूं; लेकिन मैं डेटा फ़ोल्डर से वेबपृष्ठ में स्थानीय सीएसएस फ़ाइल को इंजेक्ट करने का तरीका नहीं समझ सकता। page_mod पैकेज के माध्यम से ऐसा करने का कोई तरीका था तो यह बहुत अच्छा होगा।फ़ायरफ़ॉक्स एक्सटेंशन

उत्तर

6

ऐड-ऑन एसडीके 1.14 के रूप में वहाँ प्रयोगात्मक है (एपीआई बदल सकते हैं) page-mod मॉड्यूल में इस के लिए समर्थन:

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

पेज-आधुनिक उपयोग करने के लिए एक व्यापक गाइड के लिए Modifying Web Pages Based on URL देखें।

वर्तमान कार्यान्वयन के साथ मुद्दों पर चर्चा करते हुए a page on the Addon SDK's wiki है, हालांकि यह थोड़ा पुराना प्रतीत होता है।

हुड के तहत यह पृष्ठ के डीओएम को छूए बिना स्टाइलशीट जोड़ने के लिए nsIDOMWindowUtils .loadSheet() का उपयोग करता है।


कि इससे पहले कि आप डालने के लिए पेज-आधुनिक के सामग्री स्क्रिप्ट के इस्तेमाल कर सकते हैं (यह API फ़ायरफ़ॉक्स 18 में जोड़ा गया है, bug 737003 कि आप nsIStyleSheetService जो समान था, लेकिन नहीं टैब विशेष का इस्तेमाल किया था देखते हैं। इससे पहले कि।) लिंक या स्टाइल तत्व (example)। [संपादित करें] lwburk की टिप्पणी के लिए धन्यवाद, यहां Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox By Mark Pilgrim: "Alter a Page's Style" section में एक विस्तृत विस्तृत विवरण है।

+0

यह असंभव है के बाद से मैं appbuilder एसडीके – italiano40

+1

उपयोग कर रहा हूँ @ italiano40 मुझे XPCOM का उपयोग करने के लिए: आप संदर्भित कर रखना " एपबिल्डर एसडीके "। यदि आपका मतलब ऐड-ऑन एसडीके है, तो कृपया सही शब्द का उपयोग करें। ऐड-ऑन एसडीके ('आवश्यकता (' क्रोम ')' में XPCOM घटकों का उपयोग करना संभव है, हालांकि यह एक उन्नत विषय है और एड-ऑन एसडीके सामान्य रूप से प्रदान की जाने वाली अग्रेषित संगतता गारंटी को अमान्य कर देगा। – Nickolay

+1

भी देखें: 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

main.js से सीएसएस सम्मिलित करने के लिए एक अब उपयोग कर सकते हैं "पृष्ठ-आधुनिक":

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

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

इसका उल्लेख करने के लिए धन्यवाद! मैंने एडन एसडीके के नए संस्करण के लिए अपना जवाब अपडेट किया। – Nickolay

संबंधित मुद्दे