Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2014, 13:20
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Как скачать файл через JS?
Нужно скачать файл через Javascript. Ссылка хранится в переменной. Как это можно сделать?
Желательно скачать файл в объект, переименовать его и сохранить на компьютер. Такое возможно? Если нет, то хотя бы как его просто скачать?
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2014, 14:33
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 864

создать iframe src="http://ссылка-на-файл"
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2014, 15:33
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

var downloadURL = function downloadURL(url) {
    var hiddenIFrameID = 'hiddenDownloader',
        iframe = document.getElementById(hiddenIFrameID);
    if (iframe === null) {
        iframe = document.createElement('iframe');
        iframe.id = hiddenIFrameID;
        iframe.style.display = 'none';
        document.body.appendChild(iframe);
    }
    iframe.src = url;
};
downloadURL();

Создал. Вставляешь ссылку на аудиофайл, он просто воспроизводит его в фоне, но файл не скачивается.
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2014, 16:52
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

если не гнаться за кроссбраузерностью, то можно создать ссылку с атрибутом download и "кликнуть" по ней.
<a href="images/name.jpg" download="newname.jpg">Скачать файл</a>

Последний раз редактировалось BETEPAH, 20.07.2014 в 16:55.
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2014, 17:14
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Сообщение от BETEPAH Посмотреть сообщение
если не гнаться за кроссбраузерностью, то можно создать ссылку с атрибутом download и "кликнуть" по ней.
<a href="images/name.jpg" download="newname.jpg">Скачать файл</a>
Мне и не нужна кроссбраузерность. Я знаю про этот атрибут. Но хотелось бы, чтобы файл начал скачивать по одному клику, без создания всяких ссылок. Я пишу расширение для браузера Google Chrome, поэтому код будет интегрироваться на чужую страницу.
Ответить с цитированием
  #6 (permalink)  
Старый 20.07.2014, 17:24
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Dimaz,
да хоть вообще без кликов. Я же не зря слово "кликнуть" в кавычках написал
После создания ссылки с нужным именем в атрибуте download, делаете my_link.click().
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2014, 17:46
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Сообщение от BETEPAH Посмотреть сообщение
Dimaz,
да хоть вообще без кликов. Я же не зря слово "кликнуть" в кавычках написал
После создания ссылки с нужным именем в атрибуте download, делаете my_link.click().
Не совсем понял как это сделать. Можно маленький пример?
Ответить с цитированием
  #8 (permalink)  
Старый 20.07.2014, 19:42
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Сообщение от Dimaz
Можно маленький пример?
Типа того:

file=document.getElementById("id")
onload=file.click()

наверное, имелось в виду
Ответить с цитированием
  #9 (permalink)  
Старый 20.07.2014, 21:07
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Сообщение от newobject Посмотреть сообщение
Типа того:

file=document.getElementById("id")
onload=file.click()

наверное, имелось в виду
спасибо большое
Ответить с цитированием
  #10 (permalink)  
Старый 20.07.2014, 22:20
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Сделал так. Создается ссылка, но ее совсем не обязательно добавять на страницу. Даже так работает. Я рад Спасибо за помощь.
var link = document.createElement('a');
link.setAttribute('href','http://javascript.ru/forum/images/ca_serenity/misc/logo.gif');
link.setAttribute('download','download');
onload=link.click();

http://jsfiddle.net/4EzQL/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 12:29
Вывыод контента через JS inet_boy Элементы интерфейса 0 18.11.2013 02:00
Как это реализовать на JS Bezlyj Общие вопросы Javascript 6 06.03.2012 08:20
Как выводить часть элементов страницы через javascript Victim Events/DOM/Window 9 28.12.2011 21:51
Скачать файл с использованием javascript Rockie Общие вопросы Javascript 12 26.09.2008 11:54