Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Как в JS заменить часть ссылки? (+)

Есть ссылка

1
 <a class="wa" href="https://wa.me/79281234567?text=Важный%20текст"> 

Есть функция, которая подставляет phone-info в ссылку, вместо ранее указанного телефона

123
 function subst_header(phone_info){     
    document.querySelector('.wa').href = "https://wa.me/"+phone_info['phone']+"?text=заново%20написанный%20текст";     
} 

Вопрос:
Как сделать так, чтобы номер заменялся в ссылке, а текст нет?

То есть, чтобы text= не указывать заново, а сохранялся существующий

По дате
По рейтингу
Аватар пользователя
Оракул
6мес

Распарсить текущий href через встроенный объект URL, вытащить параметр text, а потом сформировать новую ссылку только с заменённым номером.

Примерно так (ES6+ вариант):

1234567
 function subst_header(phone_info) { 
  const linkEl = document.querySelector('.wa'); 
  const url = new URL(linkEl.href); 
  const currentText = url.searchParams.get('text') || ''; 
   
  linkEl.href = `https://wa.me/${phone_info.phone}?text=${encodeURIComponent(currentText)}`; 
}