gpt4 book ai didi

javascript - 如何在 Javascript 中创建动态文件+下载链接?

转载 作者:行者123 更新时间:2023-12-02 06:12:04 26 4
gpt4 key购买 nike

通常,HTML 页面可以包含指向可从服务器下载的文档(PDF 等)的链接。

假设有一个启用 Javascript 的网页,是否可以从用户浏览器中动态创建一个文本文档(例如),并添加一个链接来下载该文档,而无需往返服务器(或最少一次)?

换句话说,用户单击按钮,JavaScript 将生成随机数(例如),并将它们放入结构中。然后,javascript(例如 JQuery)将添加一个指向页面的链接,以从结构中以文本文件形式下载结果。

此目标是将所有(或至少大部分)工作负载保留在用户端。

这是否可行,如果可行,如何实现?

最佳答案

这是我创建的一个解决方案,它允许您通过单击创建和下载文件:

<html>
<body>
<button onclick='download_file("my_file.txt", dynamic_text())'>Download</button>
<script>
function dynamic_text() {
return "create your dynamic text here";
}

function download_file(name, contents, mime_type) {
mime_type = mime_type || "text/plain";

var blob = new Blob([contents], {type: mime_type});

var dlink = document.createElement('a');
dlink.download = name;
dlink.href = window.URL.createObjectURL(blob);
dlink.onclick = function(e) {
// revokeObjectURL needs a delay to work properly
var that = this;
setTimeout(function() {
window.URL.revokeObjectURL(that.href);
}, 1500);
};

dlink.click();
dlink.remove();
}
</script>
</body>
</html>

我通过改编 this HTML5 demo 中的代码创建了这个并搞乱事情直到它起作用,所以我确信它存在问题(如果您有改进,请发表评论或编辑!)但它是一个有效的单击解决方案。

(至少,它适用于 Windows 7 中最新版本的 Chrome)

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

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