Поочереди перейти по всем ссылкам со страницы
Нужно обойти все ссылки со страницы. Все переходы нужно сделать в текущем окне.
Собственно, получаю все ссылки, но переходит сразу на последнюю. Чего-то не хватает? 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, время: 13:53. |