|
Полезные советы
Как разделить доступ к страницам для браузеров ниже 4-ой версии
Как известно, основной проблемой
всех людей создающих веб страницы, является то, как сделать страницы
одинаково видимыми как в Нетскейпе так и на Интернет Эксплорере. И ладно
бы только в них, так еще на каждой версии этих браузеров.
Ну, слава богу, успешно канули в лета 2ые версии NN и MSIE. Но вот о
3их версиях, еще забыли не все :о( Из-за чего? - спросите Вы. Обычно
Трешками (особенно MSIE 3) пользуются новички в Интернете. Поскольку
этот браузер устанавливается по умолчанию, при инсталляции Windows95.
Любители Нетскейпа люди более прогрессивные, и обычно следят за выпуском
новых версий. Но и среди них находятся индивидуумы, не приемлющие новизны
технологий. Среди таких, как ни странно, много и самой продвинутой части
населения сети: Вебмастеров и Сисадминов. В том числе иногда к таким
индивидумам начинаю относиться и я, хотя без листов стилей жить уже
не могу.
Если уменьшить различия показа страницы между Нетскейпом 4.х и Эксплорером
4.х, еще как-то удается (используя только теги обрабатываемые Нетскейпом
или листы Стилей, а также кое-где ява скрипты), то показ этих же страниц
на 3их версиях обоих смотрелок приведет к самым плачевным результатам.
Что хотелось бы сделать, для решения этой проблемы. Задумка нашлась
сразу. Это должен был быть некий ява скрипт, который бы определял при
загрузке документа какой версии браузер у пользователя, и если смотрелка
4ой версии, то показывал бы содержимое страницы, а если 3ей, то выводил
бы упрощенную версию, или просто извинение за неудобства. И еще хорошо
бы все это расположить на одной странице, дабы не досаждать переадресацией.
Ну сам скрипт для определения версии браузера и вывода кода HTML в соответствии
с этим, очень прост:
<script language="JavaScript"><!-
var brous;
brous = navigator.appVersion;
if (brous.substring(0,1) <4 )
document.write("<P>Тут код для 3их браузеров</P>");
-></Script>
Поясню, что тут к чему:
переменной brous мы задаем значение о версии браузера пользователя,
в частности для Вас это будет :
Поскольку для нас является значащей только первая цифра, то с помощью
brous.substring(0,1)
мы ее и выделяем. И если она меньше 4х, то выводим
HTML код, который написан в document.write. При этом
следует помнить, что MSIE3.0 на самом деле дает 2ую версию на этой позиции
- поэтому здесь поставлен знак меньше, а не два равно.
Вроде бы ура!, можно пить пиво, но не тут то было
:(. Да этот скрипт выведет нужную нам информацию для 3их смотрелок,
но он и выведет содержимое страницы, которое предназначено только для
4ых. Что делать? Первая мысль, поставить условие для четверок, и заключить
текст страницы в несколько document.write, но представляете,
как трудно будет обновлять такую страницу? Короче - ужас.
Немного подумав, я вспомнил о замечательном теге комментария <!-.
Если его поставить в конец кода выводимого для 3 версий браузеров, то
тогда остальной код следующий за ним, превратится в комментарий, и станет
невидимым. Ободренный таким умозаключением, я проделал это, и написал
вот примерно так:
...
document.write("<P>Тут код для 3их браузеров</P><!-");
...
И запустил страницу. Нда, конечно ничего не
заработало :о( Броузер посчитал, что все что следует после <!-
в скрипте, тоже комментарий:
...
document.write("<P>Тут код для 3их браузеров</P><!-
");
-></Script>
...
Что, опять облом? И как заставить скрипт написать <!-?
А оказалось очень просто! Надо его разделить на две части вот так:
...
document.write("<P>Тут код для 3их браузеров</P><!"
+ "-");
...
Но тег комментария надо бы и закрыть, а то
никакого эффекта мы не получим. Если сделать это с помощью такого же
скрипта, но в конце документа, то он не заработает. Поскольку, как Вы
уже наверное догадались, этот скрипт попадет в первый сгенерированный
комментарий. Поэтому -> надо ставить явно после </html>.
Так что просто напишите <!- ->. Тег открытия уйдет
в наш комментарий, а тег закрытия закроет все.
Вот и все!
[Оглавление] |
|