2
A
回答
2
我已经只是把在全球页面的代码,并使用隐藏的设置项,以确保它只能运行在第一时间做过这样的事情:
if (!safari.extension.settings.hasRun) {
safari.extension.settings.hasRun = true;
alert('Congratulations!');
}
有一点要注意的意思是,任何注入的脚本只能在新加载的页面上或刷新后注入。所以使用上面的代码向注入的脚本发送一条消息来修改当前打开的页面的内容会有点麻烦。你将不得不强制刷新,或者只开一个欢迎消息的标签:
if (!safari.extension.settings.hasRun) {
safari.extension.settings.hasRun = true;
safari.application.openBrowserWindow();
safari.application.activeBrowserWindow.activeTab.url = "http://www.example.com/welcome";
}
相关问题
- 1. Safari扩展 - 消息
- 2. Safari无法安装此扩展程序
- 3. 您可以在Mac应用程序中安装Safari扩展吗?
- 4. Safari扩展发送消息到应用程序
- 5. Safari扩展消息传递
- 6. Safari扩展:“安装”事件?
- 7. 是否可以使用NSIS安装程序来安装Safari(Windows)扩展程序?
- 8. 如何在安装Chrome扩展程序时触发onDownloadProgress?
- 9. 从桌面软件包安装Safari扩展程序
- 10. 如何检查Safari是否安装了扩展程序?
- 11. 如何通过AppleScript在Safari中安装扩展程序
- 12. Tab键重装在Safari扩展安装后
- 13. 检测是否安装了Safari扩展
- 14. Ecllipse处理程序在安装后不会触发
- 15. 安装msi后设置扩展程序的默认程序
- 16. Safari扩展将消息发送到特定选项卡
- 17. Safari扩展中的注入脚本不会在Youtube中触发
- 18. 安装Visual Studio扩展程序
- 19. 使用Macports安装php扩展程序
- 20. 支架,安装扩展程序无法
- 21. Firefox自定义扩展安装程序
- 22. 在JavaCard上安装扩展小程序
- 23. 扩展已安装的应用程序
- 24. 如何在Safari中安装扩展后访问DOM
- 25. Chrome扩展程序自动触发
- 26. 如何使用安装项目安装safari扩展?
- 27. Chrome扩展程序:元素创建时触发事件吗?
- 28. Chrome扩展程序开发:消息传递问题
- 29. 如何从Google Chrome扩展程序发送Twitter直接消息?
- 30. 从网络应用程序发送消息到扩展
感谢,简单巧妙:)我不知道是否在某些方面有可能消息从全球网页的页面所以要避免刷新。我试图通过safari.application.activeBrowserWindow.activeTab.page.dispatchMessage向页面发布消息,它看起来好像是发送的,但我无法从我的页面的js中听到它(试过window.addEventListener和document .addEventListener但它看起来不起作用)。 – Pietro
据我所知,出于安全原因,页面上的js与扩展保持完全分离。我想不出任何方法来将额外的js注入到已安装扩展之前加载的页面中。您可以考虑暂时添加一个工具栏按钮并以编程方式激活一个弹出页面,该页面可以包含您的消息,但与强制刷新或打开新选项卡并无太大区别。 –