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.

mapeo entre los identificadores de pestañas y el runtime.Port

Estoy trabajando en el panel de herramientas de desarrollo como se describe aquí: http://www.devdoc.net/web/developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Extendingthedeveloper_tools.html

Estoy tratando de enviar mensajes hacia atrás y adelante desde la página (contentScript). Mi problema es que cuando el contentScript envía el mensaje de vuelta al proceso de fondo, éste no sabe qué puerto utilizar para enviar el mensaje de vuelta al panel. Tengo una lista de todos los puertos, pero no puedo encontrar una forma de asociar un panelPort a un ID de pestaña.

El documento anterior dice:
“La página de fondo puede mantener una asignación entre ID de pestañas y objetos runtime.Port, y utilizar esto para enrutar mensajes entre los dos ámbitos.”
¿Alguna idea de cómo lograr esta asignación?

  • cuando mi panel se conecta al fondo, obtengo el panelPort, pero no puedo pasar ninguna información sobre el tabId
  • cuando mi panel envía el tabId a través de un mensaje al fondo, puedo encontrar qué panelPort se utilizó para este mensaje.

Gracias por tu ayuda.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr la asignación entre los identificadores de pestaña (tab IDs) y los objetos runtime.Port, se puede utilizar una estructura de datos como un JavaScript Map para mantener esta información.

    Cuando su panel se conecte al fondo (background), puede crear una nueva entrada en el mapa con panelPort como clave y el identificador de pestaña como valor.

    Cuando su script de contenido (contentScript) envíe un mensaje de regreso al fondo, puede recuperar el identificador de pestaña asociado con panelPort buscándolo en el mapa utilizando panelPort como clave.

    Alternativamente, cuando su panel envíe el identificador de pestaña a través de un mensaje al fondo, puede actualizar el mapa con la nueva asignación entre panelPort y el identificador de pestaña.

    Al mantener esta asignación, puede enrutar mensajes entre el panel y el script de contenido con base en el identificador de pestaña asociado.

Comments are closed.