Советы по JavaScript : Чем заменить SSI, или необычное использование JavaScript

смотрим также

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Структура подавляющего количества интернет-страничек примерно одинакова: это заголовок странички, навигационное меню и, непосредственно, само содержимое. Нет проблем, когда на Вашем сайте несколько страниц. Если Вы захотели изменить дизайн, то на это уйдет немного времени. А если страниц не 8-10 а 100-200? Чтобы поменять дизайн нужен долгий однообразный кропотливый труд. А если в меню появился новый пункт? Опять же везде на каждой странице надо вводить изменения.

Помочь в этом может SSI - возможность собрать страничку из отдельных блоков. Т.е у Вас есть меню, которое одинаково на всех страницах. Вы его выносите в отдельный файл, а затем включаете его в нужное место на странице. Теперь, чтобы изменить меню на всех страницах, надо изменить его только в одном файле.

Это конечно удобно, но данная возможность имеется только при платном хостинге, или Вам придется вставлять баннеры хостера, что может быть нежелательно для Вас.

Справиться с этой проблемой может язык JavaScript, а именно атрибут SRC в теле тега <SCRIPT>.

Атрибут SRC задает URL файла, в котором находится код программы JavaScript, а в самом файле с расширением *.js мы запишем то, что должно выводиться на экран при помощи метода document.write

Например у нас есть меню состоящее из двух пунктов и страница, в которую надо вставить это меню:

Файл menu.js:

document.write("<B>Меню:</B><BR>"); 
document.write("<A href="page1.html">Ссылка1</A><BR>"); 
document.write("<A href="page2.html">Ссылка2</A>");

Файл page.html:

<html> 
<head> 
<title>Проверка</title> 
</head> 
<body> 
<h1>Моя страница</h1> 
<script src="menu.js"></script> 
. . . 
</body> 
</html>

Т.е. вместо

<script src="menu.js"></script>

браузер вставил:

<B>Меню:</B><BR> 
<A href="page1.html">Ссылка1</A><BR> 
<A href="page2.html">Ссылка2</A>

И если вместо меню на всех страницах вставить <script src="menu.js"></script>, то для изменения меню на всех страницах нужно изменить только файл menu.js

Но у этого метода есть небольшие недостатки:

  • Исходный код увеличивается за счет прибавления document.write
  • Достаточно старые браузеры не распознают тег <SCRIPT>, а следовательно ничего не подставят.
  • Достаточно часто происходит путаница с двойными и одинарными кавычками, т.к. они должны быть вложены друг в друга.
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="http://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования