es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La extensión de Chrome manifest v3 exclude_glob y exclude_matches no está funcionando.

Tengo 2 scripts que quiero cargar dependiendo del sitio que las personas abran en el navegador …

El script login.js solo debe cargarse en admin.someDomain.com, admin.someOtherDomain.com y localhost.

El script dcctrecontent.js debe cargarse en todas las demás páginas abiertas en el navegador.

Actualmente, login.js se agrega correctamente, pero también se agrega dcctrecontent.js a los dominios admin.someDomain.com, admin.someOtherDomain.com y localhost, ¡y no debería ser así!

Como estoy desarrollando localmente, mi dirección local es “http://localhost:5090/something”, tal vez ese sea el problema.

Desde manifest.json v3:

"content_scripts": [
{
    "matches": ["*://admin.someDomain.com/*","*://admin.someOtherDomain.com/*","*://localhost/*"],
    "js": ["js/login.js"],
    "run_at": "document_end"
},
{
    "exclude_globs": ["*://admin.someDomain.com/*","*://admin.someOtherDomain.com/*","*://localhost/*"],
    "matches": ["https://*/*","http://*/*"],
    "js": ["js/dc_ctre_content.js"],
    "run_at": "document_end"
}
],

También he intentado con excludematches pero sin éxito.

Cualquier ayuda es apreciada para no cargar el script dcctre_content.js en los dominios excluidos.

Saludos

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para cargar el script login.js solo en dominios específicos y el script dc_ctre_content.js en todas las demás páginas, se pueden hacer las siguientes modificaciones en el archivo manifest.json:

    "content_scripts": [
        {
            "matches": ["*://admin.someDomain.com/*", "*://admin.someOtherDomain.com/*", "http://localhost/*"],
            "js": ["js/login.js"],
            "run_at": "document_end"
        },
        {
            "matches": ["<all_urls>"],
            "js": ["js/dc_ctre_content.js"],
            "run_at": "document_end",
            "all_frames": true,
            "match_about_blank": true,
            "exclude_matches": ["*://admin.someDomain.com/*", "*://admin.someOtherDomain.com/*", "http://localhost/*"]
        }
    ]
    

    Los cambios realizados son los siguientes:

    1. El campo matches en el primer script se ha actualizado para incluir explícitamente el protocolo http para el dominio localhost.
    2. En el segundo script, el campo matches se ha cambiado a <all_urls> para que coincida con todas las páginas.
    3. El campo exclude_globs en el segundo script se ha cambiado a exclude_matches, que es el campo correcto a utilizar en Manifest V3.
    4. Se han agregado los campos all_frames y match_about_blank al segundo script para asegurarse de que el script no se cargue en marcos o páginas about:blank.
    5. Se ha agregado el campo exclude_matches al segundo script para excluir los dominios específicos donde se carga el script login.js.

    Estos cambios asegurarán que el script dc_ctre_content.js no se cargue en los dominios excluidos.

Comments are closed.