我们公司希望将我们的软件(windows的二进制.exe )与一个简单的chrome扩展(仅限内容脚本{它不使用chrome API})捆绑在一起。
我们的二进制.exe将动态生成一个字符串,该字符串必须传递给我们的chrome扩展。
我的问题是-如何做到这一点?
似乎chrome扩展缺少某种配置文件。如果我能创建一个扩展ID.ini并在那里设置配置或者把它放在注册表上(如果是windows的话),那就太好了。
或者,我想我可以让我的二进制文件动态地构建我们插件的每个文件(.js,.manifest)到一个单独的文件夹中,设置我们需要传递的字符串,然后将这个文件夹打包到一个.crx中,最后设置windows注册表项,告诉chrome在初始化时安装这个扩展。(但这似乎不是一个实际的解决方案,仍然需要重新启动浏览器才能获得更新后的字符串值)。
我尝试部署.crx并从外部本地文件加载配置,方法是让我的扩展将脚本标记注入到页面中,如下所示
<script src="file://c:/path/to/configs.js"></script>
但它不工作,不知道为什么-也许扩展不能访问文件://协议?
似乎可以使用chrome.extension.getURL()通过javascript访问扩展本地路径;但这也无济于事,因为我猜没有简单的方法可以在已经打包的.crx中插入文件。如果它还没有打包,我的意思是,如果它只是一个包含文件的文件夹,那么chrome不会让我安装这个扩展。哦我的..。
发布于 2012-08-11 06:19:00
好吧,我认为这不是扩展的工作方式,这就是为什么它看起来如此棘手的原因。扩展不能访问本地驱动器中的文件,也不能读取任何配置文件,也不能通过dll链接。
我会通过将信息作为参数传递到特定的url来发送信息到我的扩展。假设http://www.abc.com触发了您的内容脚本,那么您应该调用http://www.abc.com?param=configurationParametersAllYouCanPutInThisLine
我们可以计算出细节,比如在页面加载之前运行脚本等。
也许有更好更多的elegants方法使用Flash来访问本地驱动器。
发布于 2013-11-12 04:02:04
尝试使用
chrome.extension.getURL('folder/file.js')
其中,文件夹是扩展包中的文件夹。
发布于 2014-02-02 18:23:38
对于这种情况,本机消息传递可能是有用的。它允许扩展与本机应用程序对话。http://developer.chrome.com/extensions/messaging.html#native-messaging
https://stackoverflow.com/questions/11909846
复制相似问题