"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo paso parámetros a los scripts de contenido inyectados con `chrome.tabs.executeScript()`?

¿Cómo paso parámetros a los scripts de contenido inyectados con `chrome.tabs.executeScript()`?

Publicado el 2024-11-07
Navegar:219

How Do I Pass Parameters to Content Scripts Injected with `chrome.tabs.executeScript()`?

Pasar parámetros a scripts de contenido inyectados con chrome.tabs.executeScript()

Al inyectar un archivo de script de contenido usando chrome.tabs.executeScript ({archivo: "content.js"}), surge una pregunta común: ¿cómo pasar parámetros a JavaScript dentro del archivo de secuencia de comandos de contenido?

Falacia de paso de parámetros

Es importante aclarar que no se pueden pasar parámetros directamente a un archivo. En su lugar, tiene dos opciones para lograr esta funcionalidad:

1. Configuración de parámetros antes de la ejecución del archivo

Nest chrome.tabs.executeScript llama para definir variables antes de inyectar el archivo:

chrome.tabs.executeScript(tab.id, {
    code: 'var config = 1;'
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});

Para variables complejas, considere usar JSON.stringify para convertir un objeto en una cadena:

var config = {somebigobject: 'complicated value'};
chrome.tabs.executeScript(tab.id, {
    code: 'var config = '   JSON.stringify(config)
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});

En content.js, puede acceder a estas variables:

// content.js
alert('Example:'   config);

2. Configuración de parámetros después de la ejecución del archivo

Primero ejecute el archivo, luego use la API de paso de mensajes para enviar parámetros:

chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});

En content.js, escuche estos mensajes usando chrome.runtime.onMessage y maneje el mensaje:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3