我有一个网站和一个Google Chrome扩展程序。该扩展程序使用NaCl API(JavaScript)从用户的计算机写入/读取文件(C ++)。
我的问题是:是否可以在我的网站(例如,iFrame)中加载扩展程序并保持其功能?
我尝试这样做,但是它仅加载扩展“ visual”部分。写入/读取(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 ++。
有什么办法吗?
<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
从多行文本框中设置变量,并使用一个可更新其值的键事件。文件名也一样,例如“ Saved draft.txt”。除了文本/纯文本外,您还可以尝试其他类型的数据。要检查其他类型,请在其数据字段中搜索标头可以包含的内容。
对于文件加载,您可以检查此http://www.html5rocks.com/en/tutorials/file/dndfiles/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句