Показать сообщение отдельно
  #1 (permalink)  
Старый 03.06.2023, 09:24
Интересующийся
Отправить личное сообщение для sochi-russia Посмотреть профиль Найти все сообщения от sochi-russia
 
Регистрация: 24.11.2014
Сообщений: 23

Как в ссылках заменить атрибут 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 я вообще ничего не понимаю. Заранее спасибо с уважением!
Ответить с цитированием