Читаем Основы программирования на JavaScript полностью

Существует концепция, называемая "Тип документа", которая задает для Web-браузера определенный набор правил. Изменение типа документа заставляет некоторые свойства переместиться из document.body в document.documentElement, но только некоторые свойства и только для некоторых браузеров.

Проще говоря, это является полным беспорядком, поэтому две следующие функции (будем надеятся) выдадут позицию прокручивания и размеры окна независимо от браузера.

function getScrollPos(){ if (window.pageYOffset){ return {y:window.pageYOffset, x:window.pageXOffset}; } if(document.documentElement && document.documentElement.scrollTop){ return {y:document.documentElement.scrollTop, x:document.documentElement.scrollLeft}; } if(document.body){ return {y:document.body.scrollTop, x:document.body.scrollLeft}; } return {x:0, y:0}; } function getWindowDims(){ if (window.innerWidth){ return {w:window.innerWidth, h:window.innerHeight}; } if (document.documentElement && document.documentElement.clientWidth){ return {w:document.documentElement.clientWidth, h:document.documentElement.cliendHeight}; } if (document.body){ return {w:document.body.clientWidth, h:document.body.clientHeight}; } return {w:0, h:0} }

Тремя последними свойствами документа являются title, referer и cookies. document.title и document.referer достаточно понятны. document.title содержит заголовок страницы. Его можно прочитать и изменить после полной загрузки документа. document.referer содержит просто URL страницы, которая привела пользователя на текущую страницу.

Поэтому, если вы щелкнули на ссылке, чтобы попасть на эту страницу, то document.referer будет содержать URL страницы, на которой находится ссылка. Если вы пришли на эту страницу сразу, задавая ее в поле адреса браузера, то document.referer будет неопределен.

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

cookie читают и записывают через document.cookie. В отличие от других свойств изменение document.cookie в действительности не перезаписывает, а добавляет к cookie. Поэтому, если требуется задать 5 cookie, то каждое из них задается с помощью document.cookie= "...";. Формат cookie имеет свои особенности, поэтому мы рассмотрим несколько функций для выполнения этой задачи:

function writeCookie(name, value, days){ if(days){ (time = new Date()).setTime(new Date().getTime()+days*24*60*60*1000); var exp = '; expires='+time.toGMTString(); }else{ var exp=''; } document.cookie=name+"="+value+exp+"; path=/"; } function readCookie(name){ var cookies = document.cookie.split(';'); for(var i=0; i

Если увеличить счетчик cookie несколько раз, обновить страницу, а затем проверить счетчик, то можно увидеть, что он остался таким же, как был до обновления страницы. Эти cookie будут сохранятся до тех пор, пока они не будут удалены из браузера или пока не пройдет 24 часа - cookie заданы на период одни сутки.

Это почти все об объектах окна и документа. В следующей лекции речь пойдет об объектно-ориентированном коде.

<p>Лекция 8. Основы объектно-ориентированного программирования</p>
Перейти на страницу:

Похожие книги