У меня здесь два куска кода, но только первый работает правильно. Я не знаю, почему. Это связано с атрибутом «загрузить»? Зачем? Или, потому что dl неправильно ссылается на правильный объект? Очень смущенный здесь, собирался на это в течение часа или двух сейчас.Почему работает только второй .click()?
(Кроме того, есть ли способ щелкнуть объект без добавления его в 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);
где это не удается? – JNF
Ничего не загружено. dl добавляется правильно, атрибуты и все, но .click() просто не работает, или если это так, это ничего не делает. Первый пример отлично работает, и я загружаю файл с данными blob под названием any fileName в то время. – Thirk
'dl [0] .click();' будет работать, вы хотите вызвать собственный метод привязки якоря, а не инициировать событие click jQuery –