Html Chrome扩展:下载/导出创建的内容;“在飞行中”;
我需要让用户下载从扩展中包含的一些数据动态创建的文件,但我不想在服务器端执行此操作 作为一个真实的例子:有一个变量包含文本“helloworld”。我希望用户能够下载/创建包含此类文本的Html Chrome扩展:下载/导出创建的内容;“在飞行中”;,html,download,google-chrome-extension,Html,Download,Google Chrome Extension,我需要让用户下载从扩展中包含的一些数据动态创建的文件,但我不想在服务器端执行此操作 作为一个真实的例子:有一个变量包含文本“helloworld”。我希望用户能够下载/创建包含此类文本的.TXT文件 可能吗 -2010年10月30日编辑- 迄今为止的解决办法: 窗口。另存为-根本不工作 createObjectURL-工作正常,但文件名和其他选项还不能自定义 将数据复制到剪贴板-工作正常,但用户需要执行太多步骤 创建一个GoogleDocs文档-可以工作,但需要修改API和Oauth -2011
.TXT
文件
可能吗
-2010年10月30日编辑-
迄今为止的解决办法:
窗口。另存为-根本不工作
createObjectURL-工作正常,但文件名和其他选项还不能自定义
将数据复制到剪贴板-工作正常,但用户需要执行太多步骤
创建一个GoogleDocs文档-可以工作,但需要修改API和Oauth
-2011年4月15日编辑
看来情况正在好转:
但是Chrome 14+在文件名方面仍然有点奇怪。出于安全原因,我认为这是不可能的。在Chrome extensions Google小组中,我发现了这个工作示例:(我已经修改它,从弹出窗口开始工作) 但是没有设置文件名,以类似于
cf8a56bf-d724-4b97-b10f-e252961135bd的内容结尾
在W3C文档()上,我发现这个不起作用示例:
var bb = new BlobBuilder();
bb.append("Lorem ipsum");
var fileSaver = window.saveAs(bb.getBlob(), "test_file");
fileSaver.onwriteend = myOnWriteEnd;
但是window.saveAs
似乎不存在
在谷歌上到处搜索,我发现了过时的Google Gears参考资料,但没有其他东西,也许是因为我处理的东西太新,没有合适的文档
有没有办法将文件名/mime类型设置为第一个示例?我认为唯一的办法是通过flash调用save dialog,请参阅library。几个小时前,我不知道如何处理这个问题,现在我已经有了两种方法,谢谢!我终于测试了Downloadify,但由于flash安全沙盒,它无法工作。文档中写道:“重要!swf仅为在线使用而编译。从文件路径(即:file://)进行测试将不起作用,因为这将违反安全性沙盒。”我也不能使用Blob选项,因为它只在最新的Chrome开发版本中起作用,因此目前我无法向扩展用户提供任何导出功能…:(下载的最后一个副本可在Web Archive上获得:它反过来指的是,HTML5甚至还没有作为规范完成,更不用说准备在Web上全面实现了。不幸的是,HTML5是“下一件大事”,只是有点太早了。难怪文件编写器还不能工作。你可以随时检查HTML5test以查看w。)到目前为止,您的浏览器支持什么。这是一个安全隐患。它的安全性不可能比从远程服务器下载任意二进制文件(这是普遍允许的)更差。嘿,您找到如何做到这一点了吗?我认为最简单也是目前最现代的方法如下所述:
var bb = new BlobBuilder();
bb.append("Lorem ipsum");
var fileSaver = window.saveAs(bb.getBlob(), "test_file");
fileSaver.onwriteend = myOnWriteEnd;