如何在 iOS Safari 上使用 javascript 下载 JSON 文件?
How to download a JSON file with javascript on iOS Safari?
我读了很多关于这个主题的文章,而 safari 似乎对此有问题(甚至 filesaver.js)。我仍然想知道,你们中的任何人是否有一种方法可以让用户单击一个按钮并将 json 文件(带有文件名)下载到他的设备。
那里有很多线程,safari 过去似乎有问题,现在已经解决了。但当前的 safari 版本似乎仍然无法做到这一点。我把最后的希望寄托在你们身上。 iOS 更新到最新版本没有帮助。
这是我的方法,适用于 Safari 桌面:
exportButton.addEventListener("click", () => {
const appState = databaseConnector.getApplicationStateAsString();
const blob = new Blob([appState], { type: "text/json" });
const fileName = `backup_${
new Date().toISOString().split("T")[0]
}.json`;
const tempElement = document.createElement("a");
const url = URL.createObjectURL(blob);
tempElement.href = url;
tempElement.download = fileName;
document.body.appendChild(tempElement);
tempElement.click();
setTimeout(function () {
document.body.removeChild(tempElement);
window.URL.revokeObjectURL(url);
});
});
试试下面的代码。
<!DOCTYPE html>
<title>Answer</title>
<a id=a download=answer.json href style=-webkit-appearance:button;color:black;text-decoration:none>Download</a>
<script>
a.href = "data:text/json;," + JSON.stringify({name: "answer"})
</script>
我读了很多关于这个主题的文章,而 safari 似乎对此有问题(甚至 filesaver.js)。我仍然想知道,你们中的任何人是否有一种方法可以让用户单击一个按钮并将 json 文件(带有文件名)下载到他的设备。
那里有很多线程,safari 过去似乎有问题,现在已经解决了。但当前的 safari 版本似乎仍然无法做到这一点。我把最后的希望寄托在你们身上。 iOS 更新到最新版本没有帮助。
这是我的方法,适用于 Safari 桌面:
exportButton.addEventListener("click", () => {
const appState = databaseConnector.getApplicationStateAsString();
const blob = new Blob([appState], { type: "text/json" });
const fileName = `backup_${
new Date().toISOString().split("T")[0]
}.json`;
const tempElement = document.createElement("a");
const url = URL.createObjectURL(blob);
tempElement.href = url;
tempElement.download = fileName;
document.body.appendChild(tempElement);
tempElement.click();
setTimeout(function () {
document.body.removeChild(tempElement);
window.URL.revokeObjectURL(url);
});
});
试试下面的代码。
<!DOCTYPE html>
<title>Answer</title>
<a id=a download=answer.json href style=-webkit-appearance:button;color:black;text-decoration:none>Download</a>
<script>
a.href = "data:text/json;," + JSON.stringify({name: "answer"})
</script>