gpt4 book ai didi

javascript - 如何在 Javascript 中动态创建供下载的文档?

转载 作者:可可西里 更新时间:2023-11-01 01:53:43 26 4
gpt4 key购买 nike

我正在编写一些在客户端中生成 XML 文档的 Javascript 代码(通过 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>

dlDataURI() 版本在 Firefox 中运行良好,在 Chrome 中运行不佳(无法保存),而在 IE 中则完全无效。 Window() 版本在 Firefox 和 IE 中运行良好,但在 Chrome 中运行不佳(无法保存,XML 嵌入在 HTML 中)。这两个版本都不会提示用户下载,它总是会打开一个新窗口来尝试显示 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});};

最佳答案

我目前看到的最好的是 Downloadify通过 Doug Neiner ,它需要 Flash 但效果很好:

"A tiny JavaScript + Flash library that enables the generation and saving of files on the fly, in the browser, without server interaction."

检查这个video .

关于javascript - 如何在 Javascript 中动态创建供下载的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com