JS подмена части ULR на лету
Уважаемые знатоки!:help: :help: :help:
Есть описание товара на странице со ссылками на другие товары, ранее сайт переносился с другого домена, поэтому при редактировании в описании в некоторых местах остались абсолютные ссылки с доменом. <div id="desc"> ...какой-то текст... <a href="https://domain1.com/product-6456.html">Пример 1</a> <a href="/product-6456.html">Пример 2</a> <a href="https://domain1.com/product-12.html">Пример 3</a> <a href="https://newdomain.com/product-1-562.html">Пример 4</a> и т.д. </div> Мне необходимо подменить старый домен domain1.com на newdomain.com во всех ссылках. Нарыл такой код: <script> var a = document.getElementById("desc").firstChild ; a.href = a.href.replace(/domain1.com/, "newdomain.com") ; </script> Но не работает:cray: , пробовал еще вот такие варианты: <script> var a = document.getElementById("desc").href ; a.href = a.href.replace(/domain1.com/, "newdomain.com") ; </script> <script> $a = "https://domain1.com"; document.getElementById('descr').href = $a; </script> Безрезультатно. Скрипт вставлял после div. Товаров много, поэтому заходить в каждый и проверять не вариант. На предыдущем домене работает копия сайта под другие товары, поэтому редирект тоже не вариант. Прошу прощения сразу, если мой вопрос тупой, но в js я не мастер. |
А каким образом домен попадает в ссылки?
|
$('#desc').children().each(function() {
var value = $(this).attr('href'); if ($(this).attr('href').indexOf('domain1') !== -1) $(this).attr('href', value.replace('domain1', 'some')); }); Вот так можно решить проблему с помощью jQuery. |
Цитата:
Проблему нужно решать на сервере, сдается, что она там была заложена сразу. |
laimas,
полностью с вами согласен, но раз человек хочет решить проблему таким образом, я предложил ему такой вот вариант. |
Никаких таких вариантов в принципе не должно быть, иначе это означает углубление проблемы. ;)
|
Цитата:
|
Цитата:
|
Цитата:
Вот чтобы этого не было, ссылки должен формировать серверный скрипт, клиент вообще не должен оперировать ссылками. |
Цитата:
|
Часовой пояс GMT +3, время: 13:10. |