/ / ¿Cómo puedo acceder a la configuración de la extensión de Safari desde fuera del ámbito global? - javascript, safari-extension

¿Cómo puedo acceder a la configuración de la extensión de Safari desde fuera del ámbito global? - javascript, safari-extension

Estoy tratando de permitir que el usuario configure mi extensión de safari a través de una página de preferencias HTML (como lo hacen muchas extensiones de Safari). Abro esta página desde una llamada javascript dentro de mi archivo html global:

var newTab = safari.application.activeBrowserWindow.openTab();
newTab.url = safari.extension.baseURI + "settings/settings.html";

Lo que NO puedo hacer es escribir nada de esto settings.html en la configuración real de la extensión de Safari o accede a la página global.

safari.extension.settings.MY_SETTINGS = settingsData;
safari.extension.globalPage

Ambas llamadas dan lugar a excepciones y los objetos aparecen indefinidos.

Luego, también intenté enviar mensajes, pero parece que nunca los recibí en el espacio global, donde pensé que podría volver a acceder a la configuración.

safari.self.tab.dispatchMessage("store_settings", settingsData); //settings javascript

Estos mensajes no son recibidos por mi oyente de eventos.

safari.self.addEventListener("message", process_messages, false); //GLOBAL javascript

¿Alguna idea de por qué no puedo acceder a la configuración de extensión? ¿Necesito inicializar algo para mi settings.html ¿Para poder acceder a la configuración de extensión?

PD: He visto un enfoque similar trabajando dentro de la extensión ClickToPlugin Safari, por lo que debería ser posible, pero no puedo hacerlo funcionar :(

Respuestas

1 para la respuesta № 1

En el script global, intente safari.application.addEventListener.


1 para la respuesta № 2

Si su página html es parte de su extensión, entonces su archivo de script settings.js tendrá acceso a safari.extension.globalPage. Este objeto apunta a la ventana de su global.html.

Desde allí puedes llamar a cualquier objeto en ese contexto. Depurar esto, sin embargo, es un dolor por decir lo menos. Buena suerte :-)