5

Tengo un problema al controlar en qué páginas se insertan mis scripts de contenido. El chrome extension developer guide especifica que puedo usar una directiva "exclude_matches" en mi manifest.json para excluir ciertas páginas de la inyección."exclude_matches" en manifest.json no hace nada?

Sin embargo, esto no parece tener ningún efecto. Mi script de contenido todavía se ejecuta en páginas que he especificado como ignoradas.

He puesto el steps to reproduce in a Gist. El código también es available on Github.

¿Alguna idea de lo que estoy haciendo mal?

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"); 

Respuesta

5

Ésta es Bug #100106. exclude_matches no funcionan correctamente. Para resolver el problema, utilice exclude_globs en lugar de exclude_matches.

Además, su regla exclude_matches solo coincide con http://news.ycombinator.com/.
Basta el patrón con un asterisco para que coincida con todo el sitio: http://news.ycombinator.com/*.

Ver también: Match patterns.

+0

Lo intenté en este momento y no parece marcar la diferencia. Aún veo el registro del script de contenido. De hecho, puedo configurar mi directiva 'exclude_matches' en' ["http: // */*"] 'y el script de contenido todavía se ejecuta en cada página http. –

+0

@duckyfuzz Ya veo. Extraño. El uso de ** 'exclude_globs' ** en lugar de' exclude_matches' resuelve el problema. –

+0

Esto todavía no funciona para los archivos CSS, como pregunté [aquí] (http://stackoverflow.com/questions/20784654/excluding-domains-from-content-scripts-in-manifest-json-doesnt-work- for-css-fil). – herohuyongtao