Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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 я вообще ничего не понимаю. Заранее спасибо с уважением!
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2023, 11:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

sochi-russia,
а смысл, если есть Ctrl + U — исходный код страницы?
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2023, 11:23
Интересующийся
Отправить личное сообщение для sochi-russia Посмотреть профиль Найти все сообщения от sochi-russia
 
Регистрация: 24.11.2014
Сообщений: 23

Сообщение от рони Посмотреть сообщение
sochi-russia,
а смысл, если есть Ctrl + U — исходный код страницы?
вот здесь так реализованно (см. Скрин жёлтые ссылки 'найти'), в ссылке (убрать нижнее подчеркивание)
https_://uniticket._ru/country/crimea

В исходном коде их ссылки остаются зашифрованными.
Вся идея заключается в том, что ссылки внешние, передается "вес - seo вкусняшки)" страницы внешнему ресурсу, что в плане Seo не лучший вариант для моего сайта, нужно ссылку сделать не ссылкой и зашифровать, что в плане Seo не должно негативно сказаться на сайте
Ответить с цитированием
  #4 (permalink)  
Старый 03.06.2023, 12:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от sochi-russia
вот здесь так реализованно
это реализовано на сервере, поэтому и настоящих ссылок не видно.
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2023, 13:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти и заменить код скрипта на странице на другой код? smls Общие вопросы Javascript 2 18.07.2016 22:01
Как заменить цепочку кода в DOM другой строкой? SashaFlowSet Events/DOM/Window 2 11.03.2015 10:47
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
JavaScript как файл закодировать base64? Трактор AJAX и COMET 3 10.06.2008 13:22