Nel*_*son 13 javascript browser download
我正在编写一些Javascript代码,用于在客户端生成XML文档(通过Google Earth插件).我希望用户能够单击页面上的按钮并提示将该XML保存到新文件.如果我在生成XML服务器端这很容易,只需让按钮打开链接即可.但是XML是在客户端生成的.
我想出了一些半工作的黑客,部分受到StackOverflow问题的启发.但是没有完全奏效.这是一个包含嵌入代码的演示HTML:
<html><head><script>
function getData() { return '<?xml version="1.0" encoding="UTF-8"?><doc>Hello</doc>'; }
function dlDataURI() {
window.open("data:text/xml;charset=utf-8," + getData());
}
function dlWindow() {
var w = window.open();
w.document.open();
w.document.write(getData());
w.document.close();
}
</script><body>
<div onclick="dlDataURI()">Click for Data URL</div>
<div onclick="dlWindow()">Click for Window</div>
</body></html>
Run Code Online (Sandbox Code Playgroud)
dlDataURI()版本在Firefox中运行良好,在Chrome中运行不佳(无法保存),在IE中根本不运行.Window()版本在Firefox和IE中运行良好,在Chrome中运行不佳(无法保存,HTML内嵌的XML).这两个版本都没有提示用户下载,它总是打开一个试图显示XML的新窗口.
有没有一种方法可以在客户端Javascript中做我想要的?我想在今天的浏览器中使用它,最好是Firefox,MSIE 8和Chrome.
使用示例Downloadify代码进行更新
window.onload = function() {
Downloadify.create("dlify", {
data: getData(),
filename: "data.xml",
swf: 'media/downloadify.swf',
downloadImage: 'images/download.png',
width: 100, height: 30});};
Run Code Online (Sandbox Code Playgroud)
据我见过的最好的是Downloadify由道格Neiner,它需要Flash,但工作得非常好:
"一个小型的JavaScript + Flash库,可以在浏览器中动态生成和保存文件,无需服务器交互."
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |