Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2018, 02:16
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 41

Нужно модифицировать ссылки на странице
Здравствуйте уважаемые, возникла перед мной не посильная для моего ума задача, по этому обращаюсь к вам за помощью. Возможно скажете что так сделать нельзя, может кто подскажет другое решение, в общем суть вопроса...
Имеется сайт на joomla 3.2, его владельцу захотелось добавить на него версию "для слабовидящих". В сети более адекватного решения как ето _http://joomla.ru/articles/2646-accessibility-template не нашол, поставил, сделал все по инструкции, сказал "Ура!!!", и тут (решенная) проблема, а именно:
ссылки, которые необходимо устанавливать в качестве переключателей
<a href="/?template=accessibility">Версия для слабовидящих</a>
и
<a href="/?template=protostar">Обычная версия</a>
статичные, тоесть в даном случаи переключаюсь только на главной странице, с любой другой также ведете на главную, но ету проблему решил почти сразу, а именно вставил в 2 шаблона (обычный и для слабовидящих) код на php, который определает текущий адрес страницы и дописывает нужный мне параметр, соответственно тому на какую версию переключаюсь. А вот и не решенная проблема...
на сайте имеются другие ссылки - в тексте, разных блоках, пунктах меню и т.д., как я могу дописать в их адрес нужный мне параметр
/?template=accessibility
или
/?template=protostar
в зависимости от того какая версия? Такое возможно реализовать посредством javascript? По идее обычную версию мне трогать вобще не нужно, ссылки там итак нормальные, а вот как сделать чтобы если в браузере была ссылка с дополнением
/?template=accessibility
, то остальные ссылки также бы имели такую оконцовку? Буду очень признателен за помощь, если найду решение то выложу все в сеть для общего использования, спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2018, 03:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

если есть хоть одна ссылка на странице с href="/?template=accessibility" то все остальные сделать такими же, правильно понял?
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2018, 09:21
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 41

не совсем так
не совсем, если в строке браузера есть _http://мойсайт.ru/?template=accessibility, то дописать на всех ссылках что на странице ?template=accessibility, но только кроме переключателя на обычную версию, там должно быть _http://мойсайт.ru/?template=protostar
Ответить с цитированием
  #4 (permalink)  
Старый 31.07.2018, 15:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

выберите нужный вариант

//если нужно к "Обычная версия" добавлять ?template=protostar
if(/\?template=accessibility/.test(document.location.search)){
	document.querySelectorAll('a').forEach(el=> el.href+= el.innerHTML == 'Обычная версия'?'?template=protostar':'?template=accessibility');
}

//если у "Обычная версия" уже есть ?template=protostar, эту ссылку надо просто игнорировать.
if(/\?template=accessibility/.test(document.location.search)){
	document.querySelectorAll('a').forEach(el=> el.href+= el.innerHTML == 'Обычная версия'?'':'?template=accessibility');
}
Ответить с цитированием
  #5 (permalink)  
Старый 31.07.2018, 23:35
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 41

j0hnik,
спасибо, сейчас попробую и отпишусь
Ответить с цитированием
  #6 (permalink)  
Старый 01.08.2018, 00:53
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 41

j0hnik,
код не работает, возможно я не правильно объяснил или сделал что-то не правильно, в общем скинул вам в лс адрес сайта, просто перейдите по ссылках на обычной версии, а потом на версии для слабовидящих, думаю поймете, а я в свою очередь опишу еще раз суть проблемы:
если в адресной строке браузера (там где ссылка на страницу где мы находимся) есть get-параметр в ссылке, вот такой например - _http://мойсайт.ru/?template=accessibility, то тогда нужно дописать на всех ссылках, что по тексту на етой странице тот же get-параметр, а именно - ?template=accessibility, но тут еще есть нюанс, ето ссылка переключатель на обычную версию сайта, и она тоже должна иметь get-параметр, только другой, например такой - _http://мойсайт.ru/?template=protostar. Обычную версию сайта желательно вообще не трогать, там итак все впорядке, а изменять ссылки на странице только тогда, когда в адресной строке браузера присутствует гет-параметр === ?template=accessibility и только такой

Последний раз редактировалось Chmil, 01.08.2018 в 01:06.
Ответить с цитированием
  #7 (permalink)  
Старый 01.08.2018, 01:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Chmil,
он работает, если в head подключаете надо оборачивать DOMContentLoaded
document.addEventListener("DOMContentLoaded", function(){
if(/\?template=accessibility/.test(document.location.search)){
	document.querySelectorAll('a').forEach(el=> el.href+= el.innerHTML == 'Обычная версия'?'':'?template=accessibility');
}
 });
Ответить с цитированием
  #8 (permalink)  
Старый 02.08.2018, 00:22
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 41

j0hnik,
огромное Вам спасибо, все заработало на "УРА!!!"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS и неработающие ссылки Sovka22 Javascript под браузер 1 13.01.2018 15:37
скрипт смены контента на странице bolton Элементы интерфейса 1 25.01.2012 02:58
стиль в отдельном файле не отражается на странице matana (X)HTML/CSS 5 15.01.2012 20:07
нужно обновлять данные на странице, если идешь назад gotanda Events/DOM/Window 1 11.12.2008 23:17
Ссылка на якорь на странице во фрейме niculins Общие вопросы Javascript 2 24.09.2008 12:23