Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2014, 12:06
Интересующийся
Отправить личное сообщение для Роман Валерьевич Посмотреть профиль Найти все сообщения от Роман Валерьевич
 
Регистрация: 19.09.2011
Сообщений: 23

Вызов location.href в цикле
Здравствуйте. Имеется массив со списком url - адресов, при переходе по которым выполняется скачивание файла. Мне необходимо из javascript выполнить загрузку всех файлов по адресам из этого массива. выполняю
for (var i=0; i < rec_url.length; i++)
{
    location.href = rec_url[i];
}

и загружается только последний файл на последней итерации.
Как организовать переход по всем ссылкам массива из скрипта? Понимаю, что возможно использую некорректный подход. Если есть другой вариант - подскажите.

P.s. в массиве url вида: http:// login: passowrd@host: port/download/byscript?name=GetRecordPath&startparam1=file.mp3&a sync=1&timeout=10 .
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2014, 12:50
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

location.href = сделает редирект на то, чему =
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2014, 12:53
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Что значит "скачивание"? Вы можете из скрипта браузера сохранять файлы на диск не спрашивая юзера?
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2014, 13:11
Интересующийся
Отправить личное сообщение для Роман Валерьевич Посмотреть профиль Найти все сообщения от Роман Валерьевич
 
Регистрация: 19.09.2011
Сообщений: 23

Сообщение от kostyanet Посмотреть сообщение
Что значит "скачивание"? Вы можете из скрипта браузера сохранять файлы на диск не спрашивая юзера?
Выполнение конструкции location.href = http:// login: passowrd@host: port/download/byscript?name=GetRecordPath&startparam1=file.mp3&a sync=1&timeout=10; приводит к загрузке файла. Файл скачивается автоматически, не спрашивая меня (в Хроме). В ff предлагает сохранить или открыть.

Моя задача - загрузить сразу пачку файлов на диск, по одному.
P.s.
файлы выдаются скриптом на сервере oktell (http://wiki.oktell.ru/%D0%A1%D0%B5%D...D1%81#download )
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2014, 13:15
Интересующийся
Отправить личное сообщение для Роман Валерьевич Посмотреть профиль Найти все сообщения от Роман Валерьевич
 
Регистрация: 19.09.2011
Сообщений: 23

Сообщение от kostyanet Посмотреть сообщение
location.href = сделает редирект на то, чему =
В том то и дело что редирект. А поскольку справа от = по сути идет ссылка на файл, то происходит его загрузка и браузер остается на изначальной странице. Т.е. получается что можно из скрипта инициировать загрузку только одного файла. Можно ли выполнить задачу групповой как-то иначе? Например, я пробовал в цикле вызывать через $.ajax php-скрипт, который выполняет редирект. Не силен пока в ajax, но способ которым пробовал я не сработал, поскольку вызываемый скрипт ничего не возвращает.
Ответить с цитированием
  #6 (permalink)  
Старый 05.02.2014, 13:31
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Хотите сказать что если выбирать из массива ссылки типа

http://javascript.ru/forum/images/ca.../misc/logo.gif

и пихать их в location.href, то все картинки автоматически окажутся в папке даунлоада Хрома?

Другими словами я вам могу закачать на диск любые программы, скрипты и прочие _файлы_ не спрашивая вашего разрешения потому что Хром такая прелесть?
Ответить с цитированием
  #7 (permalink)  
Старый 05.02.2014, 13:38
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Ну да, если это ссылка на файл и сервер посылает заголовки типа "скОчай", то браузер предложит скачать, иначе откроет, или на выбор.

Скачивание дело времени, а цикл у вас выполняется за микросекунду. Теоретически вам требуется резервуар в который будет идти закачка и этот резервуар должен начать булькать когда очередной файл load.

Но лично я делал тупо и со вкусом. Допустим у меня есть вот такой же массив ссылок. Я генерю из них объекты и браузер все кОчает как миленький, асинхронно конечно, одни вперед, другие позже. Дождавшись полной загрузки я сохраняю пагу на диск как файл со всем ее файлОм, чтобы затем спокойно взять папку с ним и скопировать (перемещать нельзя, они связаны через файловую систему с хтмл).

Куда можно скачать музло, или что у вас там? Есть тег для музла? Вот и наделайте этих тегов по length массива.
Ответить с цитированием
  #8 (permalink)  
Старый 05.02.2014, 13:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Аяксом это method GET
Сообщение от Роман Валерьевич
Файл скачивается автоматически, не спрашивая меня (в Хроме).
По-моему это звездешь. Такого не бывает. Ну или давайте напишем страницу с таким вот скриптом как вас, выложим и дадим изнутри ссылку на коллекцию всех кровей Рембо в ХаДэ. Веселуха будет...

Есть такой тег http://www.w3schools.com/tags/tag_audio.asp

Касательно аякса. Я все равно не понял что будет делать скрипт в функции на ответе сервера.

Последний раз редактировалось kostyanet, 05.02.2014 в 13:46.
Ответить с цитированием
  #9 (permalink)  
Старый 05.02.2014, 14:16
Интересующийся
Отправить личное сообщение для Роман Валерьевич Посмотреть профиль Найти все сообщения от Роман Валерьевич
 
Регистрация: 19.09.2011
Сообщений: 23

Сообщение от kostyanet Посмотреть сообщение
Хотите сказать что если выбирать из массива ссылки типа

http://javascript.ru/forum/images/ca.../misc/logo.gif

и пихать их в location.href, то все картинки автоматически окажутся в папке даунлоада Хрома?

Другими словами я вам могу закачать на диск любые программы, скрипты и прочие _файлы_ не спрашивая вашего разрешения потому что Хром такая прелесть?
Я не хочу сказать, я спрашиваю. Действительно это есть небезопасно, но это единственный более-менее фурычащий способ который я нашел к моменту написания темы, поэтому с него и начал

Сообщение от kostyanet Посмотреть сообщение
...Дождавшись полной загрузки я сохраняю пагу на диск как файл со всем ее файлОм, чтобы затем спокойно взять папку с ним и скопировать (перемещать нельзя, они связаны через файловую систему с хтмл).

Куда можно скачать музло, или что у вас там? Есть тег для музла? Вот и наделайте этих тегов по length массива.
Извините, не понял,- что вы сохраняете на диск? У меня записи разговоров из Oktell. Общую идею понял, спасибо! Но в моем случае скорее всего не подойдет. мне необходимо минимизировать действия оператора. В идеале: клацнул кнопку - слились файлы.

Сообщение от kostyanet Посмотреть сообщение
Аяксом это method GET

По-моему это звездешь. Такого не бывает. Ну или давайте напишем страницу с таким вот скриптом как вас, выложим и дадим изнутри ссылку на коллекцию всех кровей Рембо в ХаДэ. Веселуха будет...

Есть такой тег http://www.w3schools.com/tags/tag_audio.asp
Ну у меня это происходит. Возможно частный случай или какие-то определенные условия- не знаю. Скринкаст делать не буду А за тег audio спасибо! Покопаю в этом направлении.
Цитата:
Касательно аякса. Я все равно не понял что будет делать скрипт в функции на ответе сервера.
в том то и дело что ничего , поэтому и не работает этот вариант.

Насколько я понял, по-нормальному вытянуть файлы по ссылке в фоне по одному из JS не удастся. Надо с другой стороны заходить как-то. Хм..
Ответить с цитированием
  #10 (permalink)  
Старый 05.02.2014, 14:23
Интересующийся
Отправить личное сообщение для Роман Валерьевич Посмотреть профиль Найти все сообщения от Роман Валерьевич
 
Регистрация: 19.09.2011
Сообщений: 23

Мне не нужно выполнять загрузку как-то тайно или без согласия пользователя. Просто нужно выполнить это рационально. Грубо говоря, если сто файлов будет, чтобы пользователь 100 раз не клацал "да, сохранить". Быть может их как-то по ссылкам слить на сервер, запихнуть в архив и этот архив один выдавать уже на закачку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подвисание при $.ajax() в цикле amt779 jQuery 6 15.05.2013 10:55
?!Множественный вызов contextMenu!? fen0man jQuery 3 22.05.2012 09:02
popup окно в PHP цикле ryobi522 Общие вопросы Javascript 5 10.02.2012 00:18
IE6 + location.href Snipe Internet Explorer 4 12.11.2008 14:58