我正在编写一些Javascript代码,在客户端生成一个XML文档(通过
Google Earth plugin
). 我希望用户能够单击页面上的按钮并被提示将XML保存到新文件中。如果我正在生成XML服务器端,这将很容易,只需使按钮打开链接。但是XML是在客户端生成的。
我想出了一些半途而废的技巧,部分灵感来自
this StackOverflow question
. 但两者都不完全起作用。下面是一个带有嵌入式代码的演示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>
在客户端Javascript中有没有一个好的方法来实现我想要的?我希望它能在今天的浏览器中工作,最好是Firefox、MSIE8和Chrome。
用示例下载代码更新
window.onload = function() {
Downloadify.create("dlify", {
data: getData(),
filename: "data.xml",
swf: 'media/downloadify.swf',
downloadImage: 'images/download.png',
width: 100, height: 30});};