5

मुझे समस्या है कि मेरी सामग्री स्क्रिप्ट को किस पृष्ठ में इंजेक्शन दिया गया है, इसे नियंत्रित करने में समस्या हो रही है। chrome extension developer guide निर्दिष्ट करता है कि इंजेक्शन से कुछ पृष्ठों को बाहर करने के लिए मैं अपने manifest.json में "बहिष्करण_मैट्स" निर्देश का उपयोग कर सकता हूं।"बहिष्करण_मैट्स" कुछ भी नहीं करता है?

हालांकि, ऐसा कोई प्रभाव नहीं प्रतीत होता है। मेरी सामग्री स्क्रिप्ट अभी भी उन पृष्ठों पर निष्पादित करती है जिन्हें मैंने अनदेखा किया है।

मैंने steps to reproduce in a Gist रखा है। कोड available on Github भी है।

कोई विचार क्या मैं गलत कर रहा हूं?

manifest.json

{ 
    "name": "Testing Extension", 
    "version": "1.0", 
    "description": "Test the chrome extensions exclude_matches.", 
    "content_scripts": [{ 
    "matches": ["http://*/*", "https://*/*"], 
    "exclude_matches": ["http://news.ycombinator.com/"], 
    "js": ["content.js"] 
    }] 
} 

content.js

console.log("hello from the content script"); 

उत्तर

5

यह Bug #100106 है। exclude_matches ठीक से काम नहीं करते हैं।

समस्या को हल करने के लिए, exclude_globs बजायexclude_matches का उपयोग करें।

इसके अलावा, आपके exclude_matches नियम केवल http://news.ycombinator.com/ से मेल खाता है।
संपूर्ण साइट से मेल खाने के लिए तारांकन के साथ पैटर्न को सफ़ेद करें: http://news.ycombinator.com/*

यह भी देखें: Match patterns

+0

अभी इसे आजमाया और ऐसा कोई फर्क नहीं पड़ता। मैं अभी भी सामग्री स्क्रिप्ट से लॉग देखता हूं। असल में, मैं अपना 'बहिष्करण_मैट्स' निर्देश '[http: // */* "] पर सेट कर सकता हूं और सामग्री स्क्रिप्ट अभी भी प्रत्येक http पृष्ठ पर निष्पादित होती है। –

+0

@ डकीफज़ मैं देखता हूं। अजीब। 'बहिष्करण_मैब्स' की बजाय ** 'extrae_globs' ** का उपयोग करना समस्या हल करता है। –

+0

यह अभी भी सीएसएस फाइलों के लिए काम नहीं करता है, जैसा कि मैंने पूछा [यहां] (http://stackoverflow.com/questions/20784654/excluding-domains-from-content-scripts-in-manifest-json-doesnt-work- के लिए-सीएसएस-फिल)। – herohuyongtao

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