这是我为应用程序解决的方式:
HTML:
<a id="downloadAnchorElem" ></a>
JS(纯JS,此处不是jQuery):
var dataStr = "data:text/json;charset=utf-8," + enpreURIComponent(JSON.stringify(storageObj));var dlAnchorElem = document.getElementById('downloadAnchorElem');dlAnchorElem.setAttribute("href", dataStr );dlAnchorElem.setAttribute("download", "scene.json");dlAnchorElem.click();在这种情况下,
storageObj您要存储的是js对象,而“ scene.json”只是结果文件的示例名称。
与其他提议的方法相比,此方法具有以下优点:
- 无需单击HTML元素
- 结果将根据您的需要命名
- 不需要jQuery
我需要这种行为而无需显式单击,因为我想在某个时候从js自动触发下载。
JS解决方案(无需HTML):
function downloadObjectAsJson(exportObj, exportName){ var dataStr = "data:text/json;charset=utf-8," + enpreURIComponent(JSON.stringify(exportObj)); var downloadAnchorNode = document.createElement('a'); downloadAnchorNode.setAttribute("href", dataStr); downloadAnchorNode.setAttribute("download", exportName + ".json"); document.body.appendChild(downloadAnchorNode); // required for firefox downloadAnchorNode.click(); downloadAnchorNode.remove(); }


