Дата модификации документа
Некоторые web-дизайнеры находят полезным отображать внизу странички
дату последней модификации документа. Это делается для того, чтобы
посетитель мог определить, насколько часто обновляется сайт. Правда,
это же накладывает и определённые обязательства по поддержке сайта.
Согласитесь, что наблюдать прошлогоднюю дату доставляет мало
удовольствия. Но если Вы всё-же решились использовать этот приём, то
следующий скрипт Вам пригодится.
Есть два способа добиться нужного нам результата. Первый заключается
в том, что строчку с датой вы корректируете вручную, а второй, и он
более привлекательный, заключается в использовании свойства lastModified объекта document. Для этого в нужном месте странички достаточно вставить следующую конструкцию:
<script language="JavaScript">
<!--
document.write ("Дата последней модификации: " + document.lastModified);
//-->
</script>
Дата выводится в формате, соответствующем региональным настройкам
компьютера, а это не всегда нам подходит. Но, несколько усложнив
скрипт, мы сможем выводить дату практически в любом формате. Для этого
достаточно печатать дату модификации документа не сразу, а
предварительно разобрав её на составляющие. Сделать это можно при
помощи создания объекта Date, передав ему в качестве параметра document.lastModified:
<script language="JavaScript">
<!--
LastDate = new Date(document.lastModified);
LastDay = LastDate.getDate(); // Считываем число
LastMonth = LastDate.getMonth(); // Считываем месяц
LastYear = LastDate.getYear(); // Считываем год
LastYear = LastYear % 100;
LastYear = ((LastYear < 50) ? (2000 + LastYear) : (1900 + LastYear));
document.write ("Дата последней модификации: ", LastDay, "/", LastMonth+1, "/", LastYear);
//-->
</script>
Теперь осталось только прочитать день, месяц и год, воспользовавшись
методами объекта Date и напечатать дату в нужном нам формате. Именно
так и сделано в вышеприведённом скрипте, который печатает дату в
формате, соответствующем региональным настройкам России (ДД/ММ/ГГГГ).
Обратите внимание на два обстоятельства. Первое - это то, что при печати месяца мы увеличиваем его на единичку, так как метод getMonth() возвращает нам номер месяца в виде целого числа от 0 (январь) до 11 (декабрь).
А второе заключается в том, что год мы печатаем не сразу, а вначале
решаем проблему 2000 года. В данном случае эта проблема заключается в
том, что метод getYear() в версии JavaScript от Microsoft
возвращает нам год в виде четырёх цифр, а в версии Netscape Navigator в
виде последних двух (после 2000 года в виде трех :), которые следует
рассматривать как смещение от 1900 года.
Решение проблемы осуществляется достаточно просто - вначале мы берём
остаток от целочисленного деления на 100 и тем самым гарантированно
получаем год в виде двух последних цифр. Теперь нужно выяснить, к
какому веку относятся эти две цифры - для этого мы сравниваем их с
1950-м годом и считаем, что если число меньше 50, то это уже новый век,
а иначе - старый. Данным способом мы превратили проблему 2000 года в
проблему 2050 года :), когда эта уловка уже наверняка потеряет смысл.
Как сделать страничку стартовой?
В последнее время стало достаточно модным применять этот скрипт. Его
смысл заключается в том, что где-нибудь на видном месте странички мы
делаем ссылку, нажав на которую пользователь сможет сделать Вашу
страничку стартовой, т.е. такой, которая загружается при запуске
броузера и нажатии на кнопку "Домой".
Этот приём может быть полезен для информационных ресурсов, но не стоит им особо злоупотреблять.
К сожалению, на данный момент скрипт будет работать только под
Internet Explorer версии 5.x. Учтите это. Сам же код требуется
разместить в подходящем месте, а выглядит он так:
<p><a href="#"
onClick="this.style.behavior='url(#default#homepage)';
this.setHomePage('http://www.yoursite.com/'); return false;">Сделать
стартовой страницей</a></p>
Желающие могут сделать стартовой, например, мою страничку. ;-)
Добавление странички в "Избранное"
Подобно предыдущему скрипту, этот приём также работает лишь под
Internet Explorer, но уже начиная с 4-ой версии. И точно такие же
замечания по поводу его уместности.
Размещая на видном месте ссылку на этот скрипт, мы позволяем
пользователю при помощи одного щелчка добавить наш сайт в папку
"Избранное". А сам скрипт выглядит следующим образом:
<p><a href="#"
onClick="window.external.addFavorite('http://www.yoursite.com/',
'Description'); return false;">Добавить сайт в
Избранное</a></p>
Желаете проверить? Нажмите здесь, и Вы сможете добавить в избранное мой сайт. :-)
Распечатка страницы из кода
Иногда требуется распечатать страничку, причём сделать это нужно
непосредственно из кода. Сначала кажется, что это невозможно, но всё не
так плохо. На самом деле в Netscape Navigator для этого есть даже
встроенный механизм. Достаточно просто вызвать метод window.print()
А вот для получения такого же результата в Internet Explorer мы
применим не совсем обычный способ и воспользуемся специализированным
объектом ActiveX, который и позволит нам распечатать страничку.
Таким образом, наша задача разделилась на две части. Первая -
определить тип броузера, а вторая - корректно вставить объект на
страничку. Вот пример кода, который делает все необходимые действия:
<script language="JavaScript">
<!--
var browser_name = navigator.appName;
function printit() {
if (browser_name == "Netscape") {
window.print();
} else {
var WebBrowser = '<object id="WebBrowser1" width=0 height=0
classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
WebBrowser1.ExecWB(6, 2);
}
}
//-->
</script>
Осталось только вызвать этот код. Для этого, к примеру, можно воспользоваться событием onClick:
<a href="#" onClick="printit();">Распечатать статью</a>
Только не путайте этот скрипт с версиями страничек "для распечатки".
Страничка для распечатки - это обычный html-файл, из которого убрали
дизайнерское оформление и оставили очень простую вёрстку, чтобы при
печати не было лишних элементов. Приведённый же выше код
непосредственно посылает страничку на принтер.
Архив с примерами скриптов, рассмотренных в данной и предыдущей статьях, можно взять отсюда. (Материал с www.cherry-design.spb.ru)
|