首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从全局范围之外访问Safari扩展设置?

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

Stack Overflow用户
提问于 2015-04-02 06:39:39
回答 2查看 769关注 0票数 4

我正在尝试允许用户通过HTML首选项页面配置我的safari扩展(就像许多Safari扩展一样)。我在全局html文件中通过javascript调用打开此页面:

代码语言:javascript
运行
复制
var newTab = safari.application.activeBrowserWindow.openTab();
newTab.url = safari.extension.baseURI + "settings/settings.html";

我无法做到的是将任何内容从这个settings.html写入到实际的Safari扩展设置中,或者访问全局页面。

代码语言:javascript
运行
复制
safari.extension.settings.MY_SETTINGS = settingsData;
safari.extension.globalPage

这两个调用都会导致异常,并且对象看起来是未定义的。

然后我也尝试发送消息,但似乎从未在全局空间中接收到它们,我认为我可以再次访问这些设置。

代码语言:javascript
运行
复制
safari.self.tab.dispatchMessage("store_settings", settingsData); //settings javascript

我的事件侦听器不会接收到这些消息。

代码语言:javascript
运行
复制
safari.self.addEventListener("message", process_messages, false); //GLOBAL javascript

你知道为什么我不能访问扩展设置吗?我需要为我的settings.html初始化一些东西才能访问扩展设置吗?

PS:我在ClickToPlugin Safari扩展中看到了一个类似的方法-所以它应该是可能的,但我不能让它工作:(

EN

回答 2

Stack Overflow用户

发布于 2015-04-02 22:09:48

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

票数 1
EN

Stack Overflow用户

发布于 2015-06-07 15:57:57

如果您的html页面是扩展的一部分,那么您的settings.js脚本文件将可以访问safari.extension.globalPage。该对象指向global.html的窗口。

从那里,您可以调用该上下文中的任何对象。然而,至少可以说,调试这一点是一件痛苦的事情。祝你好运:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29402082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档