2012-06-13 17 views
5

में वर्तमान पृष्ठ URL जाओ मैं इस तरह मेरी default_popup पेज से वर्तमान पृष्ठ का URL प्राप्त करना चाहते हैं:Chrome एक्सटेंशन

chrome.tabs.query({active:true},function(tab){ 
    url = tab.url; 
}); 

और मैं manifest.json फ़ाइल में इस popup.html पेज पंजीकृत किया है।

Uncaught Type Error: Cannot call method 'query' of undefined

क्या मैं गलत कर रहा हूँ: फिर भी मैं त्रुटि संदेश मिल रहा है?

+0

आपके द्वारा प्राप्त त्रुटि का अर्थ है कि 'chrome.tabs' ऑब्जेक्ट पर फ़ंक्शन' क्वेरी' मौजूद नहीं है। क्या इस फ़ंक्शन को एक्सेस करने के लिए आप इस फ़ंक्शन को कॉल करने वाले विशेषाधिकारों का हिस्सा प्राप्त कर सकते हैं? और क्या आपके एक्सटेंशन में * टैब * विशेषाधिकार है? – user2428118

+0

हाँ, मेरे एक्सटेंशन में टैब विशेषाधिकार हैं और मैं popup.html पृष्ठ के अंदर chrome.tabs.query() विधि का उपयोग कर रहा हूं जो browser_json फ़ाइल में default_popup के रूप में पंजीकृत है: manifest.json फ़ाइल में फ़ील्ड। –

उत्तर

1

कॉलबैक पैरामीटर एक समारोह है कि इस तरह दिखता है निर्दिष्ट करना चाहिए:

function(array of Tab result){...} 

हो सकता है कि आप इस

url = tab[0].url; 
+1

धन्यवाद ... टैब [0] काम करता है लेकिन मैं सक्रिय क्वेरी में पूछना चाहता हूं: सच है कि अन्य टैब सरणी में क्या मतलब है टैब [1], टैब [2] ... क्या होगा ?? –

2

असल में जैसे त्रुटि

Uncaught Type Error: Cannot call method 'query' of undefined 

था, क्योंकि मैं था लिखना चाहिए popup.html पृष्ठ को अलग से चलाना (विस्तार से अलग) का अर्थ है कि मैं स्पष्ट रूप से popup.htm खोल रहा था त्रुटि में खोजने के लिए ब्राउजर में एल पेज, लेकिन मैं भूल गया कि popup.html क्रोम एपीआई का उपयोग कर सकता है यदि यह एक एक्सटेंशन पेज है और मेरा एक्सटेंशन यूआरएल नहीं दिखा रहा था क्योंकि मैं टैब [0] .url के बजाय tab.url usinf था तो Tom सुझाया गया सही उत्तर

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