2013-05-28 13 views
6

पर जोड़ें मैं फ़ायरफ़ॉक्स एक्सटेंशन में सीएसएस इंजेक्ट करने में विफल रहा। मेरा कोड यहाँ है।फ़ायरफ़ॉक्स में सीएसएस इंजेक्ट करें एसडीके

var tbb = require('toolbarbutton').ToolbarButton({ 
    id: 'button', 
    label: 'us-button', 
    image: self.data.url('img/on.png'), 
    onCommand: function() { 

    tabs.activeTab.attach ({ 

     contentScriptFile: [ 
      self.data.url('jquery/jquery.min.js'), 
      self.data.url('jquery/jquery-ui.js'), 
      self.data.url('recuperation.js'), 
      self.data.url('dialog.js') 
     ], 
     contentStyleFile: self.data.url('jquery/jquery-ui.css'), 

मैं एरिक वोल्ड द्वारा toolbar buttons का उपयोग करता हूं। सामग्री स्टाइलफ़ाइल काम नहीं कर रहा है। जब मैं बटन पर क्लिक करता हूं, तो JQuery संवाद प्रकट होता है लेकिन सीएसएस फ़ाइल के बिना।

+1

प्रश्न: क्यों * * यह काम करना चाहिए? [Tab.attach() '] पर प्रलेखन (https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/tabs.html#attach%28options%29) करता है किसी भी 'सामग्री स्टाइलफ़ाइल' विकल्प का उल्लेख नहीं है। –

+0

तो, जब मैं टूलबार बटन पर क्लिक करता हूं तो JQuery लाइब्रेरी को कैसे कॉल करें? मैं बस एक साधारण JQuery संवाद विंडो दृश्यमान बनाना चाहता हूँ। – seb68

+0

दस्तावेज़ में शैली टैग इंजेक्ट करने के लिए अपनी सामग्री स्क्रिप्ट का उपयोग करें? –

उत्तर

2

आप PageMod का उपयोग कर दूर हो सकते हैं जो आपके स्टाइल शीट को लाएगा और जावास्क्रिप्ट को इंजेक्ट भी कर सकता है।

कुछ इस तरह काम कर सकता था:

var pm = require("sdk/page-mod").PageMod({ 
    include: tabs.activeTab.url, 
    attachTo: ["existing", "top"], 
    contentScriptFile: [ 
    self.data.url('jquery/jquery.min.js'), 
    self.data.url('jquery/jquery-ui.js'), 
    self.data.url('recuperation.js'), 
    self.data.url('dialog.js') 
    ], 
    contentStyleFile: self.data.url('jquery/jquery-ui.css') 
}); 

फिर बाद में आप जब आप ऐसा वे सिर्फ चारों ओर पुराने पृष्ठों से जुड़ी फांसी नहीं कर रहे हैं यह पूरे कर चुके हैं इस PageMod को नष्ट करना चाहते हैं।

pm.destroy(); 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद। जब मैं 'include: tabs.activeTab.url डालता हूं, ', यह काम नहीं करता है। मेरे पास पहले से ही 'var tabs = आवश्यकता है (' sdk/tabs '); '। अगर मैं लिखता हूं 'शामिल करें:' * '', यह काम करता है। हालांकि, जब मैं एक बटन पर क्लिक करता हूं तो पेजमोड को कॉल करना संभव है? – seb68

+0

आपको 'संलग्न करने के लिए: ["मौजूदा", "शीर्ष"] जोड़ने की आवश्यकता है,' आपके द्वारा पारित पेजमोड विकल्पों में अन्यथा यह तब तक इंतजार करेगा जब तक आप पृष्ठ को फिर से लोड नहीं करते। –

+0

धन्यवाद। यह काम करता है लेकिन केवल पहले टैब पर खुला है, इसलिए मैं टूलबार में बटन दबाते समय पेजमोड को कॉल करने का एक तरीका खोजता हूं। – seb68

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