Поочереди перейти по всем ссылкам со страницы
Нужно обойти все ссылки со страницы. Все переходы нужно сделать в текущем окне.
Собственно, получаю все ссылки, но переходит сразу на последнюю. Чего-то не хватает?
var a=this.querySelectorAll('.links');
for (var i=0; i<a.length; i++){
document.location=a[i].value;
}
|
А вы сами как думаете? Есть у вас идеи почему не выходит?
|
Цитата:
|
Что делает 3-я строчка?
|
irvin12345, ну естественно не будет работать, как Вы себе это представляете? У Вас код срабатывает на одной странице, затем идёт переход на другую страницу, где данного кода уже нет, а если даже и есть, то он будет срабатывать заново.
|
Цитата:
localStorage.setItem localStorage.getItem localStorage.removeItem и анализ его при загрузке страницы. Идем дальше. Можно ли как-нибудь сделать это без перезагрузки скрипта? Т.е. есть расширение (например для хром), оно запускается 1 раз при заходе на урл, и дальше все переходы чтобы шли под его управлением(в текущей или в крайнем случае в соседней вкладке) |
irvin12345, можно добавить на страницу iframe, и делать все переходы в нём. Или можно с помощью ajax, и при переходе менять ссылку в адресной строке через history.pushState(0, 0, 'url').
|
Если использовать дополнительную вкладку, то можно так. Но это не особо красиво.
(function(){
var w = window.open('about:blank','linker'), d = w.document;
d.open();
d.write('<html><body>Вспомогательная вкладка</body></html>');
d.close();
var win = window,
links = ['http://ya.ru', 'http://google.ru', 'http://javascript.ru'],
l = links.length,
i = 0;
(function timeout(){
win.location.href = links[i++ % l];
w.setTimeout(timeout, 1500)
}());
}())
|
Достаточно простая реализация - фрейм во всю вкладку и подстановка по очереди всех ссылок в src фрейма,
Тогда не нужны правки и запоминания выполненных ссылок Достаточно обойтись одним скриптом и массивом ссылок |
Очередной "сёрфер".
Угадайте, есть ли защита от подобного и сколько лет назад начали от подобного защищаться...? |
Цитата:
Всем остальным спасибо, теперь хотя бы знаю что это возможно, буду разбираться. |
Спасибо всем еще раз, для меня идеально подошло вот так: (сохранить как 1.htm , запускать в chrome)
Алгоритм: в пустом html создается iframe, на событие onload которого повешено выполнение следующей итерации и условие останова.
<script>
var i = 0;
var links = ['http://learn.javascript.ru/', 'http://javascript.ru/forum/misc/', 'http://javascript.ru'];
var iframe;
function main(){
//всякие полезные действия
//...
//...
//переход дальше
if (++i<links.length){
iframe.src=links[i];
}else{
iframe.onload="";
}
}
window.onload = function() {
iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.id = 'iframe';
iframe.style.width = "100%";
iframe.style.height = "100%";
iframe.onload=main;
iframe.src=links[i];//многие сайты блокируют открытие себя в фрейме, но не все.
}
</script>
|
| Часовой пояс GMT +3, время: 00:57. |