#javascript #jquery #download #media
#javascript #jquery — запрос #Скачать #Медиафайлы #jquery
Вопрос:
Я открываю HTML-страницы в новом окне. На этих страницах есть медиафайл ".mp4"
среди других тегов. Я могу сохранить страницу с помощью этого кода:
Как загрузить только носитель внутри каждой открытой HTML-страницы? Есть способ найти и сохранить любой носитель, загружаемый этими страницами?
var anchor = document.getElementsByTagName('a');
for (var i=0; i < anchor.length; i ){
fetch(anchor[i].href)
.then(resp => resp.blob())
.then(blob => {
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.setAttribute('target', '_blank');
a.download = anchor[i].innerText; // the file name
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
});
}
Комментарии:
1. добавьте
a.setAttribute("target", "_blank");
2. Спасибо, Лоуренс! Теперь он открывается в новом окне. Есть идеи о том, как загрузить медиафайл, который был открыт?
3. попробуйте с
a.setAttribute("download", 'fileName' i '.mp4')
.. Я не уверен, что без тестирования будет работать прямая настройкаa.download
4. Нет. Я только что обновил вопрос. Спасибо
Ответ №1:
Попробуйте это:
var a = document.getElementsByTagName("video");
for(i of a){
console.log(i.src);
fetch(i.src)
.then(resp => resp.blob())
.then(blob => {
const url = window.URL.createObjectURL(blob);
const b = document.createElement('a');
b.style.display = 'none';
b.href = url;
b.setAttribute("download", 'arquivo.mp4')
b.download = 'arquivo.mp4'; // the file name
document.body.appendChild(b);
b.click();
window.URL.revokeObjectURL(url);
});
};