2012-07-20 18 views
13

मैं बना रहा हूं एक Firefox ब्राउज़र एड-ऑन और वर्तमान टैबवर्तमान टैब का यूआरएल खोजें। Firefox ब्राउज़र बनाना ऐड-ऑन

मैं इस पोस्ट Opening a URL in current tab/window from a Firefox Extension की कोशिश की है की यूआरएल खोजने की जरूरत है, लेकिन यह मुझसे कहता है कि 'विंडो' नहीं है परिभाषित। (मुझे लगता है कि क्योंकि मैं एक विस्तार से पर एड-एक कर रही हूँ बल्कि।)

यहाँ मुझे क्या करना की कोशिश की है:

var widgets = require('widget'); 
var tabs = require('tabs'); 

var widget1 = widgets.Widget({ 
    id: "widget1", 
    label: "widget1", 
    contentURL: "http://www.mozilla.org/favicon", 
    onClick: function() { 
    console.log(tabs.url); 
    } 
}) 

मैं ऐसा है कि जब मैं इसे क्लिक करें एक विजेट बनाया है वर्तमान टैब का यूआरएल 'console.log'ed होना चाहिए।

ऐसा प्रतीत नहीं होता है! "जानकारी: अपरिभाषित" प्राप्त करना जारी रखें जिसका स्पष्ट अर्थ है कि tabs.url कुछ भी वापस नहीं कर रहा है। लेकिन यह https://addons.mozilla.org/en-US/developers/docs/sdk/1.5/packages/addon-kit/docs/tabs.html

के अनुसार इसका उपयोग करने का तरीका प्रतीत होता है किसी के पास कोई विचार है?

धन्यवाद,

विल

उत्तर

11

आप बहुत करीब हैं:

const { ActionButton } = require("sdk/ui/button/action"); 
const clipboard = require("sdk/clipboard"); 
const tabs = require('sdk/tabs'); 

let button = ActionButton({ 
    id: "my-button-id", 
    label: "Button Label", 
    icon: { 
    "32": "chrome://mozapps/skin/extensions/extensionGeneric.png" 
    }, 
    onClick: function(state) { 
    let url = tabs.activeTab.url; 
    console.log("active tab url:", url); 
    require("sdk/notifications").notify({ 
     title: "Active Tab's Url is "+url, 
     text: "Click to copy.", 
     onClick: function() { 
     clipboard.set(url); 
     } 
    }); 
    } 
}); 

आप documentation on the tabs module की जांच करनी चाहिए।

नोट: मैंने फ़ायरफ़ॉक्स 29 के बाद से उपलब्ध नए यूई मॉड्यूल का उपयोग करने के लिए इस कोड उदाहरण को अपडेट किया है - मूल प्रश्न में इस्तेमाल किया गया 'विजेट' मॉड्यूल उस समय मान्य था, लेकिन तब से इसे हटा दिया गया है और फिर हटा दिया गया है।

+0

आह बहुत बहुत धन्यवाद। जेटपैक उदाहरणों पर भी एक नज़र डालेंगे। – WillJones

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