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.

¿Cómo se inserta un archivo de JavaScript externo en la página?

Necesito inyectar un widget js externo a la página. ¿Cómo puedo hacer eso con el manifiesto 3? Parece que chrome.scripting no acepta enlaces. Podría haberlo hecho fácilmente con el manifiesto v2, pero el manifiesto v3 prohíbe cualquier otro enfoque que no sea usar chrome.scripting. No puedo cambiar al manifiesto v2 porque quedará obsoleto después del nuevo año.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para inyectar un widget de JavaScript externo a la página con el manifiesto v3, puedes utilizar el método chrome.scripting.executeScript en el script de fondo. Sin embargo, este método no acepta enlaces, por lo que deberás descargar el script del widget y empaquetarlo con tu extensión.

    Primero, descarga el widget de JavaScript externo y guárdalo en la carpeta de tu extensión. Luego, en tu archivo manifest.json, agrega el script del widget al campo web_accessible_resources:

    {
      "name": "Mi Extensión",
      "version": "1.0",
      "manifest_version": 3,
      "background": {
        "service_worker": "background.js"
      },
      "web_accessible_resources": [
        "widget.js"
      ]
    }
    

    A continuación, en tu archivo background.js, utiliza el método chrome.scripting.executeScript para inyectar el script del widget en la página:

    chrome.scripting.executeScript({
      target: {tabId: tabId},
      files: ['widget.js']
    });
    

    Reemplaza tabId por el ID de la pestaña donde quieres inyectar el widget. Esto ejecutará el script widget.js en el contexto de la página actual.

    Ten en cuenta que no puedes utilizar el método chrome.scripting.executeScript para inyectar scripts remotos, ya que el manifiesto v3 solo permite la inyección de scripts que estén empaquetados con la extensión.

Comments are closed.