Загружайте файлы mp4 сразу с помощью jQuery через консоль

#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);
});
};