JavaScript | Как открыть все ссылки на странице сразу?

JavaScript | Как открыть все ссылки на странице сразу?

Команда для консоли браузера

Array.from(document.getElementsByTagName("a")).map(i=>{i.target="_blank"; return i}).map(i=>{i.click(); return i})

Куда вводить эту команду?

Открываете HTML-страницу, на которой хотите открыть все веб-ссылки. Включаете «Инструменты разработчика» в браузере (CTRL + SHIFT + i). Находите вкладку «Console«. Тыкаете курсор в белое поле справа от синей стрелочки. Вставляете команду. Жмёте клавишу ENTER.

 

! ВНИМАНИЕ !

Любой браузер заблокирует попытку открытия большого количества новых вкладок, если это сделал НЕ пользователь, а скрипт. Почему так происходит?

Браузер воспринимает это как угрозу безопасности. Если пользователь не кликал на ссылку, значит это попытка перекинуть пользователя на вредоносный сайт, на котором могут быть похищены его личные данные.

Вторая причина блокировки автоматического открытия вкладок в том, что каждая вкладка занимает место в оперативной памяти. Если открытые вкладки переполнят оперативную память компьютера пользователя, то он не сможет работать и устройство «зависнет». Современные популярные браузеры такого не допустят.

Третья причина. Из-за большого количества «одновременных» запросов к серверу, вас может заблокировать сам веб-сервер владельца сайта. Ваши вкладки — это запросы. Обычный пользователь не в состоянии открыть более 50 вкладок в минуту. Веб-сервер это знает и воспримет эти запросы с одного IP адреса как DDOS-атаку. Скорее всего вас просто «заблокируют» для доступа к сайту на некоторое время. Учитывайте это в своей работе.

Четвёртая причина. Не все ссылки ведут на тот же самый сайт, на котором вы сейчас находитесь. Исходящие ссылки(внешние) также опасны для пользователя, если владелец сайта их не контролирует.

Браузер Google Chrome блокирует скриптовое открытие ссылок - нужно разрешить
Браузер Google Chrome блокирует скриптовое открытие ссылок — нужно разрешить

 

 

Браузер Opera блокирует скриптовое открытие ссылок - нужно разрешить
Браузер Opera блокирует скриптовое открытие ссылок — нужно разрешить

 

Браузер Mozilla FireFox блокирует скриптовое открытие ссылок - нужно разрешить
Браузер Mozilla FireFox блокирует скриптовое открытие ссылок — нужно разрешить

 

Что делать?

Вы сами должны разрешить своему браузеру открывать вкладки с определённого сайта. Только после вашего разрешения он будет открывать все ссылки сразу.

 

Пример для этой публикации

Предположим у нас есть HTML-страница с такой разметкой:

<a href="/1/">Ссылка № 1</a>
<a href="/2/">Ссылка № 2</a>
<a href="/3/">Ссылка № 3</a>
<a href="/4/">Ссылка № 4</a>

Как открыть все ссылки сразу? Не хочется их все прокликивать.

Логика работы такая. Собираем все объекты ссылок. Конвертируем коллекцию в массив. Пробегаемся по всем объектам и назначаем им атрибут target со значением «_blank». Снова пробегаемся по всем объектам ссылок и «кликаем за пользователя» на каждую из них.

 

Информационные ссылки

JavaScript | Как получить все ссылки на HTML-странице?

JavaScript | Массивы (Array)

Стандарт ECMAScript — Раздел «Array Objects» — https://tc39.es/ecma262/#sec-array-objects