我这里有两个代码块,但只有第一个代码正常运行。我不确定为什么。是否与"下载"属性?为什么?或者,是因为dl没有正确引用正确的对象?在这里非常困惑,现在已经持续了一两个小时。
(另外,有没有办法点击一个对象而不将其附加到DOM?猜不行。)
// WORKING
var a = document.createElement("a");
a.style = "display: none";
a.href = window.URL.createObjectURL(new Blob([this.list.join("\r\n")], {type: "octet/stream"}));
a.download = fileName;
a.click();
window.URL.revokeObjectURL(a.href);
// NOT WORKING
var dl = $('<a>',{
style: 'display: none',
download: fileName,
href: window.URL.createObjectURL(new Blob([this.list.join("\r\n")], {type: "octet/stream"}))
});
$('body').append(dl);
dl.click();
window.URL.revokeObjectURL(dl.href);
答案 0 :(得分:0)
第一个是一个DOM对象,它有一个click
方法,第二个是一个jQuery对象,它表现为一个数组 - 从数组中获取第一个DOM元素,就像读取任何普通的javascript数组一样dl[0]
。然后,您可以在此对象上调用click
方法,该方法不需要添加到DOM中。
dl[0].click()