Основы программирования на JavaScript | страница 38



}

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. Поэтому, если требуется задать 5cookie, то каждое из них задается с помощью 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

var cookie=cookies[i].replace(/^\s+/, '');

if (cookie.indexOf(name+'=')==0) return cookie.substring(name.length+1);

}

return null;