1

我们公司希望将我们的软件(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:// 协议?

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

4

3 回答 3

1

好吧,这不是扩展应该如何工作的想法,这就是它看起来如此棘手的原因。扩展无法访问本地驱动器中的文件,也无法读取任何配置文件,也无法通过 dll 链接。

我会通过将信息作为参数传递到特定的 url 来将信息发送到我的扩展程序。假设http://www.abc.com触发您的内容脚本,那么您应该调用http://www.abc.com?param=configurationParametersAllYouCanPutInThisLine

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

使用 Flash 访问本地驱动器可能会有更好、更优雅的方法。

于 2012-08-10T22:18:59.917 回答
1

尝试使用

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

其中文件夹是您的扩展包中的文件夹。

于 2013-11-11T20:02:03.613 回答
0

对于这种情况,本机消息传递可能很有用。它允许扩展程序与本机应用程序对话。 http://developer.chrome.com/extensions/messaging.html#native-messaging

于 2014-02-02T10:23:38.000 回答