如何使用本地脚本编写 Chrome 扩展的配置文件。

3

我有一个Chrome扩展程序(旨在供公司内部使用),需要具有用户特定配置,但我希望避免用户进行所有这些配置,并通过脚本让系统管理员为他们配置那些东西。

编辑:基本上,我只需要从系统管理员可以编写的文件中读取。

这种方式是否可行?


你想要哪种配置? - Moin
只需从任何可以在扩展之外访问的文件中读取任何值即可。 - Mental Zenga
1
在扩展目录中添加一个文件。安装后,系统管理员可以在Chrome目录中找到该文件并进行编辑。 在扩展内部,您可以使用 chrome.runtime.getURL 获取完整路径。通过 AJAX 读取它。 https://developer.chrome.com/extensions/runtime#method-getURL - Moin
我已经尝试过了,但是在我的Mac OSX El Capitan系统中,我无法从互联网上提供的任何地方找到这些文件。甚至在我的Application Support文件夹中也没有Google文件夹。系统管理员能否找到该文件? - Mental Zenga
在Chrome上启用开发者工具,选择“加载已解压的扩展程序”并加载扩展所在文件夹。 - Moin
1
顺便提一下,如果您要通过.zip或.crx安装它,则可以在Mac的〜Library/Application Support/Google/Chrome/Default/Extensions文件夹中找到所有扩展程序。 我刚试过了,可行。只需从扩展页面找到您的扩展程序ID即可。 - Moin
2个回答

1
假设您有一个企业安装,您可以使用chrome.storage.managed(可以轻松地从中央位置进行控制)来保存这些首选项。

有关详细的操作系统说明,请参见通过策略配置应用程序和扩展程序


如果企业管理存储不可行,也许更好的选择是在内部Web服务器上提供配置文件。然后,扩展程序可以检索预定义的URL并相应地进行配置。
您可以使用服务器处理请求时可访问的IP/MAC地址信息自动区分计算机,或者您可以自己传递一些查询参数。

1
您有两个解决方案。
第一个是要求您的系统管理员在所有平台上正确定位Chrome扩展文件夹,并编辑其中的一个文件。如果您公司的所有计算机不相同或使用不同的平台,则可能会有些复杂。
请参见:如何在Mac上找到Google Chrome安装文件夹? 第二个解决方案就是在安装扩展时简单地请求file:///*权限。
它将允许您的扩展程序读取整个硬盘上的文件,并在预定位置加载配置文件。
这里有一个相关的问题: Chrome插件读取硬盘上的文本文件并替换文本框内容 编辑:要使第二个解决方案起作用,您需要让用户在Chrome的配置中启用“允许访问文件网址”(不确定是否可以自动执行)。

第一种解决方案会导致Chrome迅速禁用扩展程序,因为文件校验和无法验证,从而使其“受损”。第二种解决方案需要用户手动操作(无法自动检查)。 - Xan
无法删除已被接受的答案...即使是错误的。没有考虑到Chrome对扩展进行校验和。我赞同你的回答。 - Eloims
它可能不会在所有平台上禁用,但在Windows上会禁用,我认为Google想将其扩展至至少Mac。此外,它不适用于未打包的扩展程序。 - Xan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接