safari-extension - 安装扩展程序时 Safari 会触发消息吗?

标签 safari-extension

我正在设置一个网页,用户可以从中安装我们的扩展程序。当用户成功安装它时,我想说“恭喜”。

我无法找到任何可听的内容来检测这一点。安装扩展程序后 Safari 是否会触发任何消息?

最佳答案

我以前做过类似的事情,只需将代码放在全局页面中,并使用隐藏的设置项来确保它仅在第一次运行:

if (!safari.extension.settings.hasRun) {
    safari.extension.settings.hasRun = true;
    alert('Congratulations!');
}

需要注意的一件事是,任何注入(inject)的脚本仅在新加载的页面上或刷新后注入(inject)。因此,使用上面的代码向注入(inject)的脚本发送消息以修改当前打开的页面的内容有点棘手。您要么必须强制刷新,要么只打开一个带有欢迎消息的选项卡:

if (!safari.extension.settings.hasRun) {
    safari.extension.settings.hasRun = true;
    safari.application.openBrowserWindow();
    safari.application.activeBrowserWindow.activeTab.url  = "http://www.example.com/welcome";
}

关于safari-extension - 安装扩展程序时 Safari 会触发消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706941/

相关文章:

javascript - 找不到变量

javascript - 从注入(inject)的页面执行主机脚本

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

javascript - AppleScript : is it possible to limit string lengths that can be input in Safari text fields?

swift - Safari 扩展无法执行 URLSession 任务,错误为 : failed path:/var/run/mDNSResponder Operation not permitted

javascript - 打开指定宽度和高度的窗口

javascript - 网站可以调用浏览器扩展吗?

css - Safari 扩展的内容 CSS 优先级问题

reactjs - 我想将 react devtools 添加到 Safari 浏览器

javascript - 识别 Safari 扩展中上下文菜单事件的链接