"Chrome.tabs समर्थित नहीं है ..."


15

मुझे हमेशा क्रोम के कंसोल में यह त्रुटि मिलती है।

Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.

लेकिन सब कुछ ठीक काम करता है।

किसी को पता है कि यह क्या कारण है और मैं इसे कैसे हल कर सकता हूं?

जवाबों:


36

आमतौर पर, कारण एक दुर्व्यवहार विस्तार है। मेरे मामले में यह "मेजिट इट" था। यह पहचानने के लिए कि कौन सा विस्तार परेशान कर रहा है, आप या तो कर सकते हैं

उन्हें एक-एक करके निष्क्रिय करें और परीक्षण करें

  1. सभी एक्सटेंशन को निष्क्रिय करें
  2. सुनिश्चित करें कि त्रुटि हो गई है
  3. एक-एक करके विस्तार को सक्रिय करें
  4. यदि त्रुटि फिर से दिखती है, तो चरण 3 से दोहराएं

या

उनके स्रोत कोड को खोजें

  1. खुला हुआ chrome://extensions
  2. शीर्ष दाएं कोने में "डेवलपर मोड" सक्रिय करें
  3. अब आप background.htmlहर एक्सटेंशन के लिए खोल सकते हैं
  4. Ctrl + F, संदिग्ध कोड स्पॉट खोजने के लिए "chrome.tabs" टाइप करें
  5. विस्तार निर्माता को प्रतिक्रिया दें

8
अच्छा एक :) था 'माप!' मेरे लिए भी ..
एडी

7

आप chrome.tabsसामग्री स्क्रिप्ट में उपयोग नहीं कर सकते । प्रलेखन के अनुसार ,

... सामग्री स्क्रिप्ट की कुछ सीमाएँ हैं। वे नहीं कर सकते:

  • क्रोम का उपयोग करें। * एपीआई (क्रोम के कुछ हिस्सों को छोड़कर)
  • उनके विस्तार के पृष्ठों द्वारा परिभाषित चर या कार्यों का उपयोग करें
  • वेब पेज या अन्य सामग्री स्क्रिप्ट द्वारा परिभाषित चर या फ़ंक्शन का उपयोग करें

तो, आप केवल chrome.tabsपृष्ठभूमि पृष्ठों या अन्य एक्सटेंशन पृष्ठों में एपीआई का उपयोग कर सकते हैं । आप पृष्ठभूमि पृष्ठ का उपयोग करने का अनुरोध करने के लिए विस्तार संदेश का उपयोग कर सकते हैं chrome.tabs


मुझे वह नहीं मिला जो chrome.tabs का उपयोग कर रहा है। क्या यह मेरे Chrome एक्सटेंशन में से एक हो सकता है?
8k_of_power

3
हां, यह त्रुटि केवल क्रोम एक्सटेंशन (अब तक) द्वारा डाली जा सकती है।

5
मेरे लिए, यह उपाय था! त्रुटि का कारण।
जस्टिन बुल

@weng यदि आपको अभी भी त्रुटि मिलती है, तो समूहों में कुछ एक्सटेंशन को अक्षम करने का प्रयास करें और देखें कि क्या त्रुटि को हटा दिया गया है।

इसे मापो! इस त्रुटि के लिए भी कारण है। किसी और के कोड को डिबग करने के लिए परेशान नहीं किया जा सकता है इसलिए मैं अभी इसके लिए असर डाल रहा हूं।

1

यह chrome.tabsअनुमति का उपयोग करके एक एक्सटेंशन के कारण होता है , लेकिन यह निर्दिष्ट किए बिना कि यह manifest.jsonएक्सटेंशन के साथ पैक में है। ट्रिक केवल उस एक्सटेंशन का पता लगाने के लिए नहीं है जो इसका उपयोग करता है chrome.tabs, बल्कि एक को खोजने के लिए जो इसे घोषणा किए बिना ऐसा करता है।

अधिक स्वचालित दृष्टिकोण (पठनीयता के लिए बहु-पंक्ति कमांड) के साथ शुरू करें: ऑन * निक्स:

$ find . -type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq

Windows पर, PowerShell का उपयोग कर:

> gci -rec |? {-not $_.PSIsContainer} `
>> | sls 'chrome.tabs' `
>> | select -Unique Path `
>> |% {$_.Path.Split('\')[10] } `
>> | select -Unique
>>

फिरchrome://extensions नामों को एक्सटेंशन नामों में निर्देशिकाओं से मिलान करने के लिए टैब पर जाएं, और हर एक की अनुमति पर क्लिक करके देखें कि कौन उनके उपयोग के लिए मुकाबला नहीं कर रहा है chrome.tabs। ध्यान दें कि PowerShell के 4 लाइन स्निपेट मैं सूचकांक '10' पर क्योंकि उस के कितने पथ घटकों वहाँ से कर रहे हैं C:\करने के लिए Extensionsनिर्देशिका; यह आपके सिस्टम पर अलग हो सकता है।

मेरे मामले में, मैंने पाइप लाइन पर कुछ और सेगमेंट से निपटने के द्वारा खोज को पूरी तरह से स्वचालित कर दिया है:

$ find . type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq \
> | xargs -I % find % -name 'manifest.json' \
> | xargs grep -L tabs
hipbfijinpcgfogaopmgehiegacbhmob/16.0.544_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/17.1_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/18.1_0/manifest.json

अब, इसमें देख रहे हैं chrome://extensions:

यहाँ छवि विवरण दर्ज करें

पर्दाफाश।

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.