【发布时间】:2014-02-07 11:41:59
【问题描述】:
我有一个网站和一个 Google Chrome 扩展程序。该扩展使用 NaCl API (JavaScript) 从用户计算机写入/读取文件 (C++)。
我的问题是:我可以在我的网站(例如 iFrame)中加载我的扩展程序并保留其功能吗?
我尝试这样做,但它只加载扩展“视觉”部分。写/读 (NaCl) 功能不起作用。
一个更好地解释我想做的例子:
实际上是这样工作的:
我想这样做:
或者这是另一种方式,但我认为这是不可能的,是吗?
有可能吗?我该怎么做?
编辑
代码如下:
在 manifest.json 我把这个:
"externally_connectable": {
"matches": ["http://www.example.com/index.html"]
},
"web_accessible_resources": [
"/*"
],
"content_scripts" : [
{
"matches" : ["http://www.example.com/index.html"],
"js": ["index.js"]
}
],
我网站的 iframe:
<iframe src="chrome-extension://myextensionid/index.html"></iframe>
在我的扩展 index.js 文件中,只有两个按钮。它们的函数 (JavaScript) 与 .cc 文件(通过 NaCl)通信,以在计算机上的文件中保存或加载字符串。
正如我所说,该扩展程序运行良好,但是当我尝试通过 iframe 将其加载到我的网站时,它只加载 html(视觉)。只要 JS 使用 NaCl 调用 C++ 函数,JavaScript 就不会加载,因此 C++ 也不会加载。
有什么办法吗?
【问题讨论】:
-
图形可能对其他人有帮助,但我无法解析它。您为什么不发布代码示例,以便其他人可以重现您看到的问题?
-
@sowbug - 我更新了我的问题。
-
你试过在 content_scripts 中添加 "all_frames": true 吗?
-
@JoãoAugusto - 是的,我做到了。显然,它什么也没改变。
-
也许问题出在“匹配”上,显然您只允许内容脚本在“mysite.com/index.html”中运行
标签: javascript c++ google-chrome google-chrome-extension google-nativeclient