Safari问题:下载的文件名为“未知”;Javascript
Safari Issue : Downloaded file name is "Unknown" Javascript
我已经将我现有的数据转换为文本/csv,并能够在Chrome中下载文件,但当尝试在iPad或Mac上使用Safari时,它会打开一个标签,名称为"未知"/"无题"。这是我使用的代码-
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:text/csv,'+ encodeURI(response);
hiddenElement.target = '_blank';
hiddenElement.download = 'purchase.csv';
hiddenElement.click();
无论如何我都可以将下载的文件显示为safari的"purchase.csv"。
试试这个
var a = document.createElement('a');
a.setAttribute("href",URL);
a.setAttribute("target", "_blank");
var dispatch = document.createEvent("HTMLEvents");
dispatch.initEvent("click", true, true);
a.dispatchEvent(dispatch);
return false;
如果数据是LOCAL - Easy!
我们只用window.URL.createObjectURL()
。让我们设置一些全局变量…
//var response = Already defined by OP! Not sure what it is, but it's data to save.
var mimetype = "text/csv";
var filename = "purchase.csv";
现在我们通过type
参数设置标题为window.URL.createObjectURL()
…
a.href = window.URL.createObjectURL(new Blob([response], {
encoding: "UTF-8",
type: mimetype + ";charset=UTF-8",
}));
如果数据在WEB上——仍然很容易,只是更努力!
我们可以通过XMLHTTPRequest()
下载文件数据,window.URL.createObjectURL()
将数据转换为具有MIME类型头的blob类型,然后正常进行设置a.download = filename;
和a.click();
。
一个抽象函数,用于直接下载文件数据到JavaScript环境…
function load(url, callback) {
var xhr = new XMLHTTPRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) callback(xhr.responseText);
};
xhr.open("GET", url, true);
}
然后下载数据,建立链接,然后点击:
load("site.com/t.txt", function (contents) {
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob([response], {
encoding: "UTF-8",
type: mimetype + ";charset=UTF-8",
}));
a.download = filename;
document.body.appendChild(a);
a.click();
a.remove();
});
相关文章:
- 反汇编的javascript jit代码调用未知函数
- 带有 JavaScript 随机数函数的未知问题
- JavaScript删除未知侦听器
- 尝试从javascript调用flash方法时出现未知错误
- 未知的 JavaScript 函数声明模式
- JavaScript 这返回未知属性
- Android将未知字符串传递给javascript
- Javascript RegExp替换.如何携带未知字符进行替换
- Javascript未知错误
- JavaScript-从字符串中创建多个未知参数并将其传递给函数
- Javascript调试-如何破解所有未知的点击事件
- 如何从php中的会话数组中提取未知数量的元素,并将它们用作JavaScript中的单独变量
- 用JavaScript生成下拉列表(未知错误)
- Watir Web驱动程序引发未知Javascript错误
- 定义一个在 javascript 中包含未知函数的函数
- 在自定义数组 JavaScript 中创建具有未知数量输入的 JSON
- 未知的 JavaScript 错误
- 进入页面时未知的javascript脚本向下滚动
- 在我的footer.php中发现了带有html链接的未知javascript
- Safari问题:下载的文件名为“未知”;Javascript