Открывает 1 раз, проблемы с each или for
Есть массив, в ней есть ссылки, эти ссылки мне нужно открывать каждые 2 секунды по очереди, но он открывает 1 раз. Остальные игнорирует :(
var map = ["/d/416873", "/d/428156", "/d/428156n", "/d/418826", "/d/393995", "/d/339001", "/d/296157", "/d/391953", "/d/414348", "/d/430582", "/d/431087", "/d/417610", "/d/373373", "/d/401604", "/d/152572", "/d/371198", "/d/402680", "/d/363223", "/d/363223n", "/d/347460", "/d/420265", "/d/406025", "/d/406025n", "/d/391823", "/d/428432", "/d/428432n", "/d/375378", "/d/379229", "/d/379229n", "/d/366079", "/d/429454", "/d/371849", "/d/419869", "/d/419869n", "/d/431341", "/d/431341n", "/d/356968", "/d/409898", "/d/413122", "/d/396118", "/d/245186", "/d/417492", "/d/107421", "/d/107421n", "/d/371217", "/d/421936", "/d/421936n", "/d/330216", "/d/414289"]; for (var i = 0; i < map.length; i++) { setInterval(function() { window.location.href = map[i]; //console.log(map[i]) }, 2000) } |
kiberkun,
читать медленно вдумчиво страница перезагружается в строке 5 а значит успеет сработать только первый переход, а значит интервал и цикл бесполезны. придумайте иной алгоритм. |
а сработает, если ссылку открыть в новой вкладке?
|
да, сработало, но он мне все ссылки открывает каждые 2 секунды с новой вкладки. А нужно что бы 1 ссылку и по очереди.
var map = ["/d/416873", "/d/428156", "/d/428156n", "/d/418826", "/d/393995", "/d/339001", "/d/296157", "/d/391953", "/d/414348", "/d/430582", "/d/431087", "/d/417610", "/d/373373", "/d/401604", "/d/152572", "/d/371198", "/d/402680", "/d/363223", "/d/363223n", "/d/347460", "/d/420265", "/d/406025", "/d/406025n", "/d/391823", "/d/428432", "/d/428432n", "/d/375378", "/d/379229", "/d/379229n", "/d/366079", "/d/429454", "/d/371849", "/d/419869", "/d/419869n", "/d/431341", "/d/431341n", "/d/356968", "/d/409898", "/d/413122", "/d/396118", "/d/245186", "/d/417492", "/d/107421", "/d/107421n", "/d/371217", "/d/421936", "/d/421936n", "/d/330216", "/d/414289"]; for (var i = 0; i < map.length; i++) { setInterval(function() { window.open(map[i], '_blank'); }, 2000) } Что не так делаю? |
kiberkun,
уберите цикл оставьте только i |
Не понял! Написал другой вариант:
var map = ["/d/416873", "/d/428156", "/d/428156n", "/d/418826", "/d/393995", "/d/339001", "/d/296157", "/d/391953", "/d/414348", "/d/430582", "/d/431087", "/d/417610", "/d/373373", "/d/401604", "/d/152572", "/d/371198", "/d/402680", "/d/363223", "/d/363223n", "/d/347460", "/d/420265", "/d/406025", "/d/406025n", "/d/391823", "/d/428432", "/d/428432n", "/d/375378", "/d/379229", "/d/379229n", "/d/366079", "/d/429454", "/d/371849", "/d/419869", "/d/419869n", "/d/431341", "/d/431341n", "/d/356968", "/d/409898", "/d/413122", "/d/396118", "/d/245186", "/d/417492", "/d/107421", "/d/107421n", "/d/371217", "/d/421936", "/d/421936n", "/d/330216", "/d/414289"]; var i = 0; var all = map.length, linkDownloadMap = setInterval(function() { if (i == all) { clearInterval(linkDownloadMap); } else { i++; console.log("Ссылка на карту " + map[i]); } }, 100); Только он выдает в конце ошибку undefined :| |
kiberkun,
строки 9 и 10 поменяйте местами |
Цитата:
|
хорошо!
возможно :) я как задрот osu!mania решил написать себе скрипт для быстрой загрузки карт. Сам скрипт вот: // Определяем кол-во страниц в каталоге карт var all_page = $(".pagination:last a:last").prev().text(); // Начальная страница каталога var start_page = '1'; // В каждом каталоге по 40 карт // 1 карта за 3 секунды // Открываем новый каталог после окончания 40*3 = 120 секунд(Всего 2 минуты, дабы не забанили(ошибка 503) ^_^) function mapLoad() { if (start_page == all_page) { clearInterval(DownloadMap); } else { $.ajax({ type: "GET", url: "/p/beatmaplist", // ссылка на каталог карт data: { l: "1", // рекомендуемая трудность r: "4", // ранг статус (все) q: "", // название карты (если пустое, то все названия) g: "0", // все жанры la: "0", // все языки ra: "", // а хз что это за параметр :D s: "4", // а хз что это за параметр :D o: "1", // а хз что это за параметр :D m: "3", // мод osu!mania page: start_page // страница }, success: function(data) { // создаем массив карт var map = [], i = 0; // ищим карты и вставляем в массив "map" $("a.beatmap_download_link:not(.novid)", data).each(function() { var e = $(this).attr("href"); map.push(e); }); var all = map.length, linkDownloadMap = setInterval(function() { if (i == all) { clearInterval(linkDownloadMap); } else { // скачиваем файл window.open(map[i], '_blank'); i++; } }, 3000); } }); start_page++; } } mapLoad(); var DownloadMap = setInterval(function() { mapLoad() }, 120000); Возможно дорабатывать буду) |
Часовой пояс GMT +3, время: 10:52. |