07.04.2016, 17:29
|
|
Интересующийся
|
|
Регистрация: 30.05.2014
Сообщений: 21
|
|
Открывает 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)
}
|
|
07.04.2016, 17:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kiberkun,
читать медленно вдумчиво страница перезагружается в строке 5 а значит успеет сработать только первый переход, а значит интервал и цикл бесполезны. придумайте иной алгоритм.
|
|
07.04.2016, 17:46
|
|
Интересующийся
|
|
Регистрация: 30.05.2014
Сообщений: 21
|
|
а сработает, если ссылку открыть в новой вкладке?
|
|
07.04.2016, 17:51
|
|
Интересующийся
|
|
Регистрация: 30.05.2014
Сообщений: 21
|
|
да, сработало, но он мне все ссылки открывает каждые 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)
}
Что не так делаю?
|
|
07.04.2016, 18:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kiberkun,
уберите цикл оставьте только i
|
|
07.04.2016, 18:34
|
|
Интересующийся
|
|
Регистрация: 30.05.2014
Сообщений: 21
|
|
Не понял! Написал другой вариант:
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 :|
|
|
07.04.2016, 18:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kiberkun,
строки 9 и 10 поменяйте местами
|
|
07.04.2016, 18:57
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от kiberkun
|
Не понял!
|
всё вы поняли
|
|
07.04.2016, 21:15
|
|
Интересующийся
|
|
Регистрация: 30.05.2014
Сообщений: 21
|
|
хорошо!
возможно
я как задрот 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);
Возможно дорабатывать буду)
|
|
|
|