检测WebExtension的manifest.json中的导航器

问题描述 投票:0回答:1

我目前正在研究WebExtension,我遇到了一个小问题。在我的Firefox浏览器上,我能够导入并运行我的工作而不会出现任何错误/警告。然而,对于Google Chrome,我对未实现的功能(browser_style key manifest.jsonoptions_ui属性)发出了重大警告。

我想基于导航器名称创建类似if语句的内容,以便不在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文件中创建这样的条件的任何想法?

if-statement detection firefox-webextensions navigator manifest.json
1个回答
0
投票

作为Daniel Herr implied in a comment,manifest.json文件是直接JSON格式的数据。 JSON无法运行代码。无法在manifest.json文件中动态定义属性。你有2个选择:

  1. 忍受警告。 Chrome和Firefox都有为manifest.json文件定义的有效属性,而另一个则不支持。当存在不受支持的属性时,两者都会显示警告。这些只是警告,不会导致浏览器阻止扩展运行。 Chrome在chrome:// extensions /中突出显示了这些内容。 Firefox在Browser Console(OSX上的Ctrl-Shift-J或Cmd-Shift-J)中显示它们。
  2. 每个浏览器都有一个单独的manifest.json文件。 这为您的构建/开发过程增加了一些复杂性,但允许您在每个浏览器中消除这些警告。

注意:即使您没有向Google(Chrome Web Store - Extensions)和Mozilla(AMO)提交不同的manifest.json文件,在将扩展包分发给用户时,manifest.json文件和其他内容也是如此。扩展包将是不同的,因为从提交到分发的过程导致该文件被修改和/或其他文件被添加到扩展包。

© www.soinside.com 2019 - 2024. All rights reserved.