Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как в ссылках заменить атрибут href на другой и закодировать путь в Base64 (https://javascript.ru/forum/misc/85274-kak-v-ssylkakh-zamenit-atribut-href-na-drugojj-i-zakodirovat-put-v-base64.html)

sochi-russia 03.06.2023 09:24

Как в ссылках заменить атрибут href на другой и закодировать путь в Base64
 
На сайте генерируются внешние ссылки с классом
.Button

такого типа
<a class="button" href="https://site.ru/dsfssg">Ссылка</a>

Имея класс "button", как закодировать содержимое HREF в Base64 и после кодировки заменить атрибут href на придуманный атрибут link Ссылки при этом должны иметь на выходе приблизительно вот такой вид
<a class="button" link="aHR0cHM6Ly9zaXRlLnJ1L2RzZnNzZw==">Ссылка</a>

и работать как ссылка, то-бишь при клике на нее переходишь на ту страницу, которая закодирована.

У меня есть вот такой код
const o = document.querySelector('.button')
let v = o.href
o.removeAttribute('href')
v = btoa(v)
o.setAttribute('link', v)
o.addEventListener('click', e => {
  let v = e.target.getAttribute('link')
  v = atob(v)
  location.href = v
})

Но он работает только с первой ссылкой.
Добрые люди подсказали что нужно использовать делегирование событий, но в js я вообще ничего не понимаю. Заранее спасибо с уважением!

рони 03.06.2023 11:07

sochi-russia,
а смысл, если есть Ctrl + U — исходный код страницы?

sochi-russia 03.06.2023 11:23

Цитата:

Сообщение от рони (Сообщение 552248)
sochi-russia,
а смысл, если есть Ctrl + U — исходный код страницы?

вот здесь так реализованно (см. Скрин жёлтые ссылки 'найти'), в ссылке (убрать нижнее подчеркивание)
https_://uniticket._ru/country/crimea

В исходном коде их ссылки остаются зашифрованными.
Вся идея заключается в том, что ссылки внешние, передается "вес - seo вкусняшки)" страницы внешнему ресурсу, что в плане Seo не лучший вариант для моего сайта, нужно ссылку сделать не ссылкой и зашифровать, что в плане Seo не должно негативно сказаться на сайте

рони 03.06.2023 12:08

Цитата:

Сообщение от sochi-russia
вот здесь так реализованно

это реализовано на сервере, поэтому и настоящих ссылок не видно.

Aetae 03.06.2023 13:26

Если это для сео, то: с одной стороны - пофиг что настоящие ссылке где-то в js коде есть, мы не от хакера их прячем, а от бота; а с другой - бот читает страницу до твоего скрипта, т.е. он увидит все ссылки как есть. Изменять ссылки тебе всё равно нужно на сервере.)


Часовой пояс GMT +3, время: 23:47.