Текущее время: 18 дек 2017, 05:07




Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.
Автор Сообщение

Меню сайта, которое легко обновлять на всех страницах

Сообщение16 май 2015, 23:30 
Не в сети
Аватара пользователя

Зарегистрирован: 08 май 2013, 21:07
Сообщений: 18
Откуда: Москва
Мой сайт-визитка уже давно работает и все вроде хорошо, но с увеличением количества страниц мы столкнулись с проблемой корректировки каждой страницы при добавлении пункта в меню. Неужели нет способа корректировать меню один раз в одном месте, чтобы не делать это на каждой странице сайта? Ладно, если это 2, 3, 5 страниц, а если будет 15-20 или больше! :o


Вернуться к началу
 Профиль  

Меню сайта

Сообщение17 май 2015, 10:54 
Не в сети
Администратор

Зарегистрирован: 29 мар 2012, 03:27
Сообщений: 345
Вариантов много: фреймы, JavaScript, SSI, WYSIWYG, CMS и собственный генератор.

Для сайта-визитки, меню проще сделать на JavaScript. Но, т.к. генерируемое JS-ом не индексируется, то для ботов надо сделать дополнительную навигацию в виде отдельной страницы со ссылками или использовать <noscript> для реализации основных тематических связей.

Более правильно было б сделать на фреймах, но там тоже возникнут некоторые сложности, и потребуется переделать весь сайт. Фреймы хорошо подходят только для одноуровневого меню.

При знании программирования на стороне сервера, классический вариант - SSI.


Вернуться к началу
 Профиль  

Сообщение17 май 2015, 21:53 
Не в сети
Аватара пользователя

Зарегистрирован: 08 май 2013, 21:07
Сообщений: 18
Откуда: Москва
программирование на стороне сервера не знаем :roll:
из перечисленного, JavaScript вроде реалистичнее в нашем случае...
нашли в сети готовый шаблон меню на яве - menu.js, подключили в head-е jquery,
получилось так:
<script type="text/javascript" src="js/jquery.js"> </script>
<script type="text/javascript" src="js/jquery-migrate.js"> </script>
<script type="text/javascript" src="js/menu.js"> </script>
на этом пока все, что делать дальше не понятно :roll:
вроде, как, теперь надо, как то это наше menu.js вставить в Body...
а потом о ботах
Admin писал(а):
т.к. генерируемое JS-ом не индексируется, то для ботов надо сделать дополнительную навигацию в виде отдельной страницы со ссылками
- можно поподробней? кажется в этом проще разобраться чем с <noscript> и реализацией тематических связей... :roll:


Вернуться к началу
 Профиль  

Сообщение18 май 2015, 12:41 
Не в сети
Администратор

Зарегистрирован: 29 мар 2012, 03:27
Сообщений: 345
d.leko писал(а):
что делать дальше не понятно

Теперь надо читать-разбираться в инструкциях к найденному скрипту. Обычно д.б. описание того как указать место меню на странице и собственно наполнение этого меню пунктами.

Но я рекомендую воздержаться от использования скриптов требующих библиотек типа jQuery.
И без знания JavaScript её применение чревато проблемами для посетителей. Есть риск, что где-то-что-то при каких-то условиях не работает, а вы об этом не будете знать.

Лучше начать осваивать JavaScript, и через пару месяцев, сможете сами написать простое меню.

d.leko писал(а):
- можно поподробней? кажется в этом проще разобраться чем с <noscript> и реализацией тематических связей...

<noscript> - это тег, содержимое которого выводится при отключении в браузере JavaScript. Может содержать любые элементы/теги допустимые в <body>. Поисковые системы, индексируя страницы, как правило, не пытаются запускать JavaScript и изменять соответственно содержание. В результате, если вставить меню JavaScript'ом, то поисковик просто не пройдёт по ссылкам из меню. В таких случаях, <noscript> позволяет создавать альтернативную навигацию для ботов, а т.к. содержимое <noscript> индексируется, то можно влиять и на ранжирование.

Просто попробуйте произвольную часть страницы окружить <noscript>...</noscript>, посмотрите на страницу в браузере, потом в настройках отключите JavaScript и снова проверьте как выглядит страница.


Вернуться к началу
 Профиль  

Сообщение18 май 2015, 23:23 
Не в сети
Аватара пользователя

Зарегистрирован: 08 май 2013, 21:07
Сообщений: 18
Откуда: Москва
Admin писал(а):
d.leko писал(а):
Лучше начать осваивать JavaScript, и через пару месяцев, сможете сами написать простое меню.

обычно я начинаю осваивать на примерах :shock:
вот пример меню на JavaScript, он меня вполне устраивает, меню простое без ухищрений, но я не понимаю, как его легко можно обновлять на всех страницах, в чем его преимущество перед моим html-меню? оно же также сидит в Body, так же в нем перечисляются пункты меню, которые придется добавлять в body каждой страницы сайта ...
<style>
A.menulink {
display: block;
width: 198px;
text-align: left;
text-decoration: none;
font-family:arial;
font-size:12px;
color: #000000;
BORDER: none;
border: solid 1px #FFFFFF;}

A.menulink:hover {
border: solid 1px #6100C1;
background-color:#F0E1FF;
}
</style>
<script type="text/javascript">
var ns4class=''
</script>
</head>
<body>
<script type="text/javascript">
document.write(document.title)
</script></h1>
<table border="0" width=198>
<tr> <td width="100%"><a href="index.html" class="menulink">Главная</a></td> </tr>
<tr> <td width="100%"><a href="menu.html" class="menulink">Меню</a></td> </tr>
<tr> <td width="100%"><a href="o_nas.html" class="menulink">О нас</a></td> </tr>
</table>
<script type="text/javascript" src="target.js"></script>


Вернуться к началу
 Профиль  

Сообщение19 май 2015, 11:33 
Не в сети
Администратор

Зарегистрирован: 29 мар 2012, 03:27
Сообщений: 345
Так ничего не объяснить. Нужно, чтоб у Вас было хотябы поверхностное представление о программировании и JavaScript.

Аналогично файлу со стилем, который подключается ко всем страницам, JavaScript д.б. в отдельном файле и подключен к страницам инструкцией в <head>. Примерно так
Код:
<head>
...
<script type="text/javascript" src="script.js"></script>
...
</head>

В простейшем варианте, код в script.js должен содержать код меню и вставлять в DOM.

Например
script.js
Код:
var Menu='..Любой HTML-код отображающий меню...'

HTML-страница
Код:
...<tag тэг для меню><script>write(Menu)</script></tag>...


Вернуться к началу
 Профиль  

Сообщение25 май 2015, 21:22 
Не в сети
Аватара пользователя

Зарегистрирован: 08 май 2013, 21:07
Сообщений: 18
Откуда: Москва
Admin писал(а):
Аналогично файлу со стилем, который подключается ко всем страницам, JavaScript д.б. в отдельном файле и подключен к страницам инструкцией в <head>

с этим понятно, JavaScript с меню в отдельном файле есть и оно рабочее:
Код:
<script type="text/javascript">
var ns4class=''
</script>
<script type="text/javascript">
document.write(document.title)
</script>
<table border="0" width=198>
<tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">Главная</a></td> </tr>
<tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">Меню</a></td> </tr>
<tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">О нас</a></td> </tr>
</table>
<script type="text/javascript" src="menu.js"></script>

Admin писал(а):
В простейшем варианте, код в script.js должен содержать код меню и вставлять в DOM.
Например script.js
Код:
var Menu='..Любой HTML-код отображающий меню...'

Тут не совсем, ясно, мой файл .js, код меню естественно содержит, но в DOM не вставляет получается (см.код выше)?
Вот это:
Цитата:
var Menu='..Любой HTML-код отображающий меню...'

внутрь моего menu.js вставить надо?
Admin писал(а):
HTML-страница
Код:
...<tag тэг для меню><script>write(Menu)</script></tag>...

это место у меня на сайте получилось так:
Код:
<td class="menuX"><script src="js/menu.js"></script></td>


Вернуться к началу
 Профиль  

Сообщение25 май 2015, 21:42 
Не в сети
Администратор

Зарегистрирован: 29 мар 2012, 03:27
Сообщений: 345
d.leko писал(а):
это место у меня на сайте получилось так:Код:<td class="menuX"><script src="js/menu.js"></script></td>

Пишите так
Код:
<td class="menuX"><script>write(Menu)</script></td>


d.leko писал(а):
с этим понятно, JavaScript с меню в отдельном файле есть и оно рабочее: Код:
Код:
<script type="text/javascript">var ns4class=''</script><script type="text/javascript">document.write(document.title)</script><table border="0" width=198><tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">Главная</a></td> </tr><tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">Меню</a></td> </tr><tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">О нас</a></td> </tr></table><script type="text/javascript" src="menu.js"></script>

- если это ваш файл со скриптом, то он неверен. Скрипт - это программа, а у вас HTML-код.
Чтоб предыдущий код вставляющий меню работал, в подключаемом файле скрипта д.б. переменная Меню содержащая HTML-код меню.
Код:
var Menu='<tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">Главная</a></td> </tr>'+
        '<tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">Меню</a></td> </tr>'+
        '<tr> <td width="100%"><a href="http://1c-ciob.msk.ru/" class="menulink">О нас</a></td> </tr>';


Чтоб проще было понять, создайте пустую страницу с подключённым JavaScrip'ом и попробуйте вывести на страницу любую переменную из скрипта.


Вернуться к началу
 Профиль  

Сообщение26 май 2015, 09:23 
Не в сети
Аватара пользователя

Зарегистрирован: 08 май 2013, 21:07
Сообщений: 18
Откуда: Москва
такое чувство, что скоро все пойму, но что то не хватает :lol:
у меня все смешалось html код меню с описанием переменной Меню,... получается, мой html код вообще преобразуется в var Menu=' и т.д.? или его нужно еще куда-то вставить? :roll:
Цитата:
Скрипт - это программа, а у вас HTML-код.

мы этот код меню взяли на сайте с готовыми java скриптами, а оказывается это просто html код :o что же им мешало прописать нормальный java script, с переменными и т.д.? :shock:
Если в файле скрипта должно быть:
Код:
var Menu='......................';

то куда же вставить наш html код вставляющий меню, который по вашему не программа?


Вернуться к началу
 Профиль  

Re: Меню сайта, которое легко обновлять на всех страницах

Сообщение26 май 2015, 11:23 
Не в сети
Администратор

Зарегистрирован: 29 мар 2012, 03:27
Сообщений: 345
В HTML-код страницы надо вставить:
1)линк на внешний скрипт
Код:
<head>
...
<script src="ссылка на внешний файл со скриптом"></script>
...
</head>

2)код скрипта, который собственно будет выводить меню
Код:
<body>
...
<script>write(Menu)</script>
...
</body>

- это просто вывод значения переменной Menu непосредственно в то вместо где этот скрипт появляется в HTML-коде страницы.

В прилинкованном скрипте, для простейшего случая, надо просто определить переменную Menu.
Т.е. присвоить переменной некоторый текст, который и будет выводиться на странице:
Код:
var Menu='Любой текст не содержащий одиночных кавычек'


Вернуться к началу
 Профиль  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB