Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2015, 01:26
Аспирант
Отправить личное сообщение для stem Посмотреть профиль Найти все сообщения от stem
 
Регистрация: 09.03.2013
Сообщений: 36

JS подмена части ULR на лету
Уважаемые знатоки!

Есть описание товара на странице со ссылками на другие товары, ранее сайт переносился с другого домена, поэтому при редактировании в описании в некоторых местах остались абсолютные ссылки с доменом.

<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>

Но не работает , пробовал еще вот такие варианты:
<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 я не мастер.
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2015, 06:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А каким образом домен попадает в ссылки?
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2015, 11:40
Аспирант
Отправить личное сообщение для tourniquet Посмотреть профиль Найти все сообщения от tourniquet
 
Регистрация: 04.04.2014
Сообщений: 58

$('#desc').children().each(function() {
var value = $(this).attr('href');

if ($(this).attr('href').indexOf('domain1') !== -1)
$(this).attr('href', value.replace('domain1', 'some'));
});

Вот так можно решить проблему с помощью jQuery.
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2015, 11:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от tourniquet
Вот так можно решить проблему с помощью jQuery.

Проблему нужно решать на сервере, сдается, что она там была заложена сразу.
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2015, 15:30
Аспирант
Отправить личное сообщение для tourniquet Посмотреть профиль Найти все сообщения от tourniquet
 
Регистрация: 04.04.2014
Сообщений: 58

laimas,
полностью с вами согласен, но раз человек хочет решить проблему таким образом, я предложил ему такой вот вариант.
Ответить с цитированием
  #6 (permalink)  
Старый 22.10.2015, 16:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Никаких таких вариантов в принципе не должно быть, иначе это означает углубление проблемы.
Ответить с цитированием
  #7 (permalink)  
Старый 23.10.2015, 18:29
Аспирант
Отправить личное сообщение для stem Посмотреть профиль Найти все сообщения от stem
 
Регистрация: 09.03.2013
Сообщений: 36

Сообщение от laimas Посмотреть сообщение
А каким образом домен попадает в ссылки?
На старом сайте клиент редактировал товары, и ставил ссылки на другие товары, я 101 раз объяснял и записывал видеоурок какую часть ссылки надо копировать, чтобы домен не вставлять в ссылку. Но клиент тупит временами, тут я уже ничем не могу помочь)))
Ответить с цитированием
  #8 (permalink)  
Старый 23.10.2015, 18:34
Аспирант
Отправить личное сообщение для stem Посмотреть профиль Найти все сообщения от stem
 
Регистрация: 09.03.2013
Сообщений: 36

Сообщение от tourniquet Посмотреть сообщение
$('#desc').children().each(function() {
var value = $(this).attr('href');

if ($(this).attr('href').indexOf('domain1') !== -1)
$(this).attr('href', value.replace('domain1', 'some'));
});

Вот так можно решить проблему с помощью jQuery.
Спасибо, этот код в body вставлять или в head?
Ответить с цитированием
  #9 (permalink)  
Старый 23.10.2015, 19:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от stem
На старом сайте клиент редактировал товары, и ставил ссылки на другие товары, я 101 раз объяснял и записывал видеоурок какую часть ссылки надо копировать, чтобы домен не вставлять в ссылку. Но клиент тупит временами, тут я уже ничем не могу помочь)))

Вот чтобы этого не было, ссылки должен формировать серверный скрипт, клиент вообще не должен оперировать ссылками.
Ответить с цитированием
  #10 (permalink)  
Старый 24.10.2015, 02:53
Аспирант
Отправить личное сообщение для stem Посмотреть профиль Найти все сообщения от stem
 
Регистрация: 09.03.2013
Сообщений: 36

Сообщение от laimas Посмотреть сообщение
Вот чтобы этого не было, ссылки должен формировать серверный скрипт, клиент вообще не должен оперировать ссылками.
Ссылки в редакторе текста проставляются, в данной cms нет возможности настроить редактор на реагирование абсолютных ссылок. При чем тут сервер я не пойму...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операционная Система на JS Icat Общие вопросы Javascript 3 17.04.2018 22:54
Вывыод контента через JS inet_boy Элементы интерфейса 0 18.11.2013 03:00
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
Замена части url через js NOLDOR123 Общие вопросы Javascript 2 15.05.2013 05:42