javascript - 如何在我的网站中使用 Chrome 扩展功能 (NaCl)?

标签 javascript c++ google-chrome google-chrome-extension google-nativeclient

我有一个网站和一个 Google Chrome 扩展程序。该扩展使用 NaCl API (JavaScript) 从用户计算机写入/读取文件 (C++)。

我的问题是:我能否在我的网站中加载我的扩展程序,例如,在 iFrame 中并保留其功能?

我尝试这样做,但它只加载扩展“视觉”部分。写入/读取 (NaCl) 功能不起作用。

一个更好地解释我想做什么的例子:

它实际上是这样工作的: enter image description here

我想这样做: enter image description here

或者这是另一种方式,但我认为这是不可能的,是吗? enter image description here

这可能吗?我该怎么做?

编辑

代码如下:

我在 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++ 也不会加载。

有什么解决办法吗?

最佳答案

<embed name="nacl_module" id="nacl_module" width="100%" height="100%" path src="//storage.googleapis.com/gonacl/demos/publish/236779/voronoi/voronoi.nmf" type="application/x-pnacl">

上面的标签在这个 iframe 中:

<iframe frameborder="0" width="100%" height="100%" src="/static/voronoi/index.html">

这是来自 https://gonativeclient.appspot.com/demo/voronoi

还有 https://gonativeclient.appspot.com/static/voronoi/example.js包含如何完成的脚本。

我搜索了 10 分钟才找到它。只是知道 NaCl 不适用于其他浏览器。

如果您想要适用于所有浏览器的纯 JavaScript。使用下面的代码片段。它会创建一个链接,当您单击它时,它会下载一个包含 text 数据的文本文件。 添加“.innerHTML”属性,如“保存”,然后您可以单击它。 HTML5 对长属性没有限制。

var file = document.createElement('a');
file.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
file.setAttribute('download', filename);

您可以从多行文本框中设置 text 变量,并使用更新其值的键事件。文件名也是如此,例如“保存草稿.txt”。除了文本/纯文本之外,您还可以试验其他类型的数据。要检查其他类型,请在其数据字段中搜索 header 可以采用的内容。

对于文件加载,您可以查看此 http://www.html5rocks.com/en/tutorials/file/dndfiles/

关于javascript - 如何在我的网站中使用 Chrome 扩展功能 (NaCl)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21626869/

相关文章:

javascript - 类型 'xxx' 上不存在属性 'Readonly<{}>'

javascript - 在 JavaScript 中一起使用过滤器和排序方法时排序不正确

c++ - 如何在不违反严格的别名规则的情况下访问内存映射的多字节寄存器?

firefox - 如何撤销 Chrome 和 Firefox 中的给定权限?

google-chrome - 访问 Google Chrome 的缓存

javascript - 如何在不使用 new 关键字的情况下设置原型(prototype)函数

javascript - 使用 threejs 选择、更新和操作 Obj 文件

c++ - 比较队列和堆栈的内容

c++ - 有什么意义可以有这个代码?

google-chrome - 使用 Openssl S_server 测试 chrome HTTPS