下载变量

Mik*_*cki 7 javascript

在Javascript中,是否有可能提示用户下载实际上不在服务器上但具有脚本变量内容的文件?

精神上的东西:

var contents = "Foo bar";
invoke_download_dialog(contents, "text/plain");
Run Code Online (Sandbox Code Playgroud)

干杯,

MH

Ste*_*art 3

javascript: URI 应该适用于此 - 事实上,这正是它们的用途。然而,IE 不支持 type 属性,并且在 Safari 中该技术根本没有效果。

data: URI 在 Firefox (3.0.11) 和 Safari (4.0)(可能还有其他兼容的浏览器)中工作,但我无法让这种方法在 IE (8.0) 中工作。(全部在Windows下测试)

<a href="data:text/plain,The%20quick%20brown%20fox%20jumps%20over%20the%20lazy%20dog.">Data URI</a>

这本身不是一个 JS 解决方案,但 JS 可以用来动态设置 href。使用转义函数将原始文本/数据转换为 URI 编码形式。

将其与检测 IE 相结合并使用已链接的 IE 特定解决方案可能会满足您的要求......

我要补充的是,您不能强制它触发下载对话框(这超出了 HTML 和 JS 的范围),但您可以通过将 application/octet-stream 设置为类型来说服它这样做。问题是用户必须手动添加正确的文件扩展名。