24

कोड उस पृष्ठ के लिए वर्तमान टैब ऑब्जेक्ट को आउटपुट करने के लिए है जिसका उपयोग उपयोगकर्ता कंसोल पर देख रहा है लेकिन यह केवल अपरिभाषित आउटपुट करता है। यह एक ब्राउज़र कार्रवाई पृष्ठ के भीतर से चलाया जाता है।क्रोम एक्सटेंशन में पृष्ठ ऑब्जेक्ट प्राप्त करने के लिए आप chrome.tabs.getCurrent का उपयोग कैसे करते हैं?

chrome.tabs.getCurrent(function(tab){ 
    console.log(tab); 
}); 

मैं documentation देखा है और जहाँ तक मैं बता सकता हूँ कोड मिलान करने के लिए यह क्या कहते हैं लगता है।

+1

ब्राउज़र एक्शन पॉपअप पेज किसी भी टैब का हिस्सा नहीं हैं, इसलिए 'tabs.getCurrent()' काम नहीं करेगा। इसके बजाय, 'tabs.getSelected()' के साथ सर्ग का उत्तर चाल चलाना चाहिए। –

उत्तर

17

प्रयास करें:

chrome.tabs.getSelected(null, function(tab){ 
    console.log(tab); 
}); 
+6

काम करता है, धन्यवाद! लेकिन क्यों? : -/ –

+5

बहिष्कृत, नीचे @ konstantin का जवाब देखें। – lionello

+0

'getCurrent()' लगभग बहिष्कृत 'getSelected() 'या नीचे दिए गए उत्तर के समान नहीं है, पहली विधि उस टैब को प्राप्त करती है जहां से स्क्रिप्ट चल रही है, जबकि दूसरा को वर्तमान चयनित (सक्रिय) टैब मिलता है – novalain

81

विधि getSelected() गूगल क्रोम 16 के बाद से बहिष्कृत कर दिया गया है (लेकिन आधिकारिक दस्तावेज में कई लेख अभी तक अपडेट नहीं किया गया था)। Official message is here। निर्दिष्ट विंडो में चयनित टैब प्राप्त करने के लिए, chrome.tabs.query() का उपयोग तर्क {'active': true} के साथ करें। तो अब यह इस तरह दिखना चाहिए:

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) { 
    console.log(tabs[0]); 
}); 
+0

यह हमेशा कॉलबैक में 0 लंबाई सरणी देता है ( – SuperUberDuper

+0

क्या होगा यदि एक डेस्कटॉप में मेरे पास 2 क्रोम विंडो खुलती हैं, तो प्रत्येक मुझे एक टैब दिखाता है, इस मामले में यह संभव है> 1 सक्रिय टैब? – lsheng

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