编程语言
首页 > 编程语言> > javascript – 如何从全局范围之外访问Safari扩展设置?

javascript – 如何从全局范围之外访问Safari扩展设置?

作者:互联网

我试图允许用户通过HTML首选项页面配置我的safari扩展(许多Safari扩展都这样做).我从全局html文件中的javascript调用打开此页面:

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

我无法做的是将此settings.html中的任何内容写入实际的Safari扩展设置或访问全局页面.

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

这两个调用都会导致异常,并且对象显示为未定义.

然后我也尝试发送消息,但似乎永远不会在全球空间接收它们,我认为我可以再次访问设置.

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

我的事件监听器未收到这些消息.

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

知道为什么我无法访问扩展程序设置吗?我是否需要为settings.html初始化某些内容才能访问扩展程序设置?

PS:我在ClickToPlugin Safari扩展程序中看到了类似的方法 – 所以它应该是可能的,但我无法让它工作:(

解决方法:

在全局脚本中,尝试safari.application.addEventListener.

标签:javascript,safari-extension
来源: https://codeday.me/bug/20190702/1360823.html