Привет! Вопрос такой возник, как сделать так, чтобы в меню, ссылка, на ту страницу где в данный момент находится пользователь, была как бы неактивной? Наподобие того, что в меню созданном в конструкторе
Но тогда он работает только со вторым меню, а на первое перестает распространяться. Единственное не попробовал два раза прописать скрипт с разными ID. Только мне кажется я ни тем занимаюсь. Может есть скрипт распространяющийся на все ссылки на странице, т.е. если на странице присутствует ссылка на неё саму, то она становится неактивной? Или например, чтобы сравнение происходило только у ссылок с определенным class'ом, и при совпадении, class подменялся на другой. Неактивной имею в виду, или задать другой стиль через CSS или преобразующий такую ссылку в обычный текст. В принципе, если трудно такое реализовать, то попробую адаптировать указанный мной выше скрипт до конца. Надеюсь изложил все более-менее внятно.:)
Добавлено (13.08.2010, 23:00) --------------------------------------------- Вот в принципе нашел что мне нужно было
Code
<script> onload = function () { for (var lnk = document.links, j = 0; j < lnk.length; j++) if (lnk [j].href == document.URL) lnk [j].style.cssText = 'color:black;text-decoration:none'; } </script>
вроде работает как надо.
Сообщение отредактировал Komoff - Пятница, 13.08.2010, 03:03
2011-09-11Дата: Воскресенье, 11.09.2011, 10:47 | Сообщение # 4
Группа: Гости
likbezz, спасибо большое за Ваше внимание и за рецепты в теме "Как подсветить (выделить) активную (текущую) ссылку. JavaScript + CSS".
Мой сайт http://geopgsga.narod.ru/pubs/pubs2010.htm". Раздел "Публикации". Но там пока ещё всё по-старому, а экспериментирую со ссылками я на компьютере (локально). (Пока не добьюсь, чего хочу).
Прописать функцию к какому-то другому блоку (вроде body и др.) не хотелось бы, потому что хочется просто вставить на странице в двух местах ссылку
Code
<script src="js/pubs.js"></script>
и больше ни в каких местах страницу не трогать. То есть, не приписывать ни к каким тегам классы или что-то подобное.
А в этом файле *.js в данный момент находится такое содержимое:
function shineLinks(id){ try{ var el=document.getElementById(id).getElementsByTagName('a'); var url=document.location.href; for(var i=0;i<el.length; i++){ if (url==el[i].href){ el[i].className += ' act'; }; }; }catch(e){} };
shineLinks('msgText','act');
Этот код работает во всех основных браузерах (IExplorer, FF, Opera, GChrome). Но только для первой ссылки из двух.
В общем, можно ли как-то модифицировать код именно в файле "js/pubs.js", чтобы выделялось две ссылки; и при этом не трогать код самой страницы, кроме прописывания там ссылки на файл
Code
<script src="js/pubs.js"></script>
. Спасибо. Извините, что своими глупыми вопросами отнимаю Ваше время.
Добавлено (11.09.2011, 10:47) --------------------------------------------- Да, вдогонку к предыдущему моему сообщению.
Я, конечно, мог бы создать ещё один файл
Code
js/pubs2.js
И тогда бы вверху страницы ставил бы ссылку
Code
<script src="js/pubs1.js"></script>
, а внизу страницы -
Code
<script src="js/pubs2.js"></script>
. Но если понабодится внести изменения в файл (например, добавить новый год - 2012) - то нужно будет выполнить изменения в обоих файлах. А это как-то нерациональным мне представляется.
В общем, можно ли как-то модифицировать код именно в файле "js/pubs.js", чтобы выделялось две ссылки; и при этом не трогать код самой страницы, кроме прописывания там ссылки на файл
Ну, в общем, я уже дал готовый код, не привязывать к ID вообще, а просто к документу, это проще, чем писать функцию для класса: Вот примерное содержимое вашего файла (pubs.js):
- просто будет пробегаться циклом по всем ссылкам, благо у вас их не много )) ... И, кстати, зачем вам там вообще таблица? Можно проще и гораздо короче:
- тогда, у вас стилевое оформление будет исключительно в блоках с классом blockLinks ... К тому же, вынесете из кода стилевое оформление (text-align:center;)... ...
2011-09-11Дата: Воскресенье, 11.09.2011, 14:26 | Сообщение # 8
Группа: Гости
Спасибо. Вот теперь всё получается. Проверил в четырёх разных браузерах - работает.
Очень здорово, что вот эта штуковина
Code
function shineLinks(){
не содержит в скобках class. Когда я пробовал варианты с id в скобках (неделю назад), тогда годы отображались, а когда я ставил в скобки class, тогда FireFox и IExplorer не отображали годы вообще, а Opera и GoogleChrome нормально отображали.