设置chrome扩展的配置(配置chrome扩展参数)

时间:2012-08-10 22:01:48

标签: configuration google-chrome-extension

我们公司希望将我们的软件(用于Windows的二进制.exe)与简单的Chrome扩展程序捆绑在一起(仅限内容脚本{它不使用chrome API})。

我们的二进制.exe将动态生成一个字符串,该字符串必须传递给我们的chrome扩展名。

我的问题是 - 怎么做?

Chrome扩展似乎缺少某种配置文件。如果我可以创建一个EXTENSION-ID.ini并在那里设置配置或将其放在注册表(如果是windows)上,那将是很棒的。

或者,我想我可以让我的二进制动态地将我们的插件(.js,.manifest)的每个文件构建到一个单独的文件夹中,设置我们需要传递的字符串,然后将此文件夹打包成一个。 crx并最终设置windows注册表项告诉chrome在初始化时安装此扩展。 (但这似乎不是一个实用的解决方案,仍然必须重新启动浏览器以获取更新的字符串值。)

我尝试部署.crx并从外部本地文件加载配置,方法是让我的扩展程序在页面中注入像这样的脚本标记

<script src="file://c:/path/to/configs.js"></script>

但它没有用,不知道为什么 - 也许扩展程序无法访问file://协议?

看起来可以通过javascript使用chrome.extension.getURL();来访问扩展本地路径。但这也没有用,因为我猜没有简单的方法可以在已经打包的.crx中插入文件....如果它还不是包,我的意思是,如果它只是一个包含文件的文件夹,那么chrome不会让我安装扩展程序。哦,我的......

3 个答案:

答案 0 :(得分:1)

嗯,认为这不是延伸工作的方式,这就是为什么它看起来如此棘手。 扩展程序无法访问本地驱动器中的文件,也无法读取任何配置文件,也无法通过dll链接。

我会通过在特定网址中将其作为参数传递给我的扩展程序。假设http://www.abc.com触发了您的内容脚本,那么您应该调用http://www.abc.com?param=configurationParametersAllYouCanPutInThisLine

我们可以计算细节,因为在加载页面之前运行脚本等等。

使用Flash访问本地驱动器可能有更好更多的elegants方法。

答案 1 :(得分:1)

尝试使用

chrome.extension.getURL('folder/file.js')

其中folder是扩展程序包中的文件夹。

答案 2 :(得分:0)

本机消息传递可能对此类情况有用。它允许扩展程序与本机应用程序通信。 http://developer.chrome.com/extensions/messaging.html#native-messaging