我目前正在处理webextension,我有一个小问题。在我的Firefox浏览器上,我可以在没有任何错误/警告的情况下导入和运行工作。但是,使用Google Chrome,我对未实现的功能有很大的警告(browser_style
manifest.json
密钥options_ui
的属性)。
我想创建类似于基于导航器名称的语句之类的东西,以在Chrome上设置此属性,而是将其保存在Firefox上。
这是我的manifest.json
的一部分:
"options_ui": {
"page": "contents/settings.html",
"browser_style": true
},
这是我想拥有的(不工作):
"options_ui": {
"page": "contents/settings.html",
if (options_ui.browser_style) {
"browser_style": true
}
},
关于如何在manifest.json
文件中创建这样的条件的任何想法?
正如丹尼尔·赫尔(Daniel Herr)在评论中所暗示的那样, subtest.json 文件是直接的json格式化数据。JSON没有运行代码的功能。没有可能在您的 subtest.json 文件中动态定义属性。您有2个选项:
- 与警告一起生活。
Chrome和Firefox都有针对 subtest.json 文件定义的有效属性,而另一个文件不支持。两者都显示出不受支持的属性时。这些是仅警告,不会导致浏览器防止扩展运行。Chrome在 chrome中突出显示这些内容://Extensions/。Firefox在浏览器控制台(CTRL-SHIFT-J或OSX上的CMD-Shift-J)中显示它们。 - 有一个单独的 subtest.json 每个浏览器文件。
这为您的构建/开发过程增加了一定的复杂性,但您可以在每个浏览器中消除这些警告。
注意:即使您不提交不同的 subtest.json 文件,向Google(Chrome Web Store -Extensions)和Mozilla(AMO)(到达扩展程序包分配给用户时), subtest.json 文件和扩展程序包的其他内容将有所不同,因为从提交到发行的过程中,该文件中的分发结果和/或将添加到扩展程序包中的其他文件。。