Объект screen. Получение информации
о мониторе пользователя
Объект screen содержит информацию о характеристиках видеосистемы ком-
пьютера клиента.
Свойства объекта screen:
? width — полная ширина экрана в пикселах;
? height — полная высота экрана в пикселах;
? availWidth — ширина, доступная для окна Web-браузера;
? availHeight — высота, доступная для окна Web-браузера;
? colorDepth возвращает глубину цвета: 4 — для 16 цветов, 8 — для
256 цветов, 32 — для 16,7 млн цветов.
Для примера выведем информацию о мониторе пользователя (листинг 3.53).
Листинг 3.53. Информация о видеосистеме
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Информация о видеосистеме</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-
1251">
</head>
<body>
<h1 style="text-align: center">Информация о видеосистеме</h1>
<div>
<script type="text/javascript">
<!-
document.write(screen.width + " – полная ширина экрана в пикселах.<br>");
document.write(screen.height);
document.write(" – полная высота экрана в пикселах.<br>");
document.write(screen.availWidth);
document.write(" – ширина, доступная для окна Web-браузера.<br>");
document.write(screen.availHeight);
document.write(" – высота, доступная для окна Web-браузера.<br>");
document.write(screen.colorDepth + " – глубина цвета.");
//->
</script>
</div>
</body>
</html>
3.17.8. Объект location.
Разбор составляющих URL-адреса документа.
Создание многостраничных HTML-документов
Объект location содержит информацию об URL-адресе текущей Web-
страницы.
Свойства объекта location:
? href — полный URL-адрес документа;
? protocol — идентификатор протокола;
? port — номер порта;
? host — имя компьютера в сети Интернет, вместе с номером порта;
? hostname — имя компьютера в сети Интернет;
? pathname — путь и имя файла;
? search — строка параметров, указанная после знака "?" (включая этот знак);
? hash — имя "якоря" (закладки) в документе, указанное после знака "#" (включая этот знак).
Методы объекта location:
? assign() загружает документ, URL-адрес которого указан в качестве па-
раметра;
? reload() перезагружает документ;
? replace() загружает документ, URL-адрес которого указан в качестве параметра. При этом информация об URL-адресе предыдущего докумен- та удаляется из объекта history.
Загрузить новый документ можно не только с помощью методов assign() или
replace(), но и присвоив новый URL-адрес свойству href объекта location:
window.location.href = "newURL.html";
Если нужно загрузить документ в какой-либо фрейм, то сначала необходимо указать имя фрейма:
frameName.location.href = "newURL.html";
frameName.location.assign("newURL.html");
Для примера разберем URL-адрес документа на составляющие (листинг 3.54).
Листинг 3.54. Информация об URL-адресе
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Информация об URL-адресе</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-
1251">
</head>
<body>
<h1 style="text-align: center">Информация об URL-адресе</h1>
<div>
<script type="text/javascript">
<!- document.write(window.location.href);
document.write(" – полный URL-адрес документа.<br>"); document.write(window.location.protocol); document.write(" – идентификатор протокола.<br>");
document.write(window.location.port + " – номер порта.<br>");
document.write(window.location.host);
document.write(" – имя компьютера в сети Интернет, "); document.write("вместе с номером порта.<br>"); document.write(window.location.hostname);
document.write(" – имя компьютера в сети Интернет.<br>");
document.write(window.location.pathname + " – путь и имя файла.<br>");
document.write(window.location.search); document.write(" – строка параметров.<br>"); document.write(window.location.hash + " – имя якоря (закладки)"); document.write(" в документе.<br>");
//->
</script>
</div>
</body>
</html>
Через строку URL-адреса могут передаваться некоторые параметры для про- граммы, расположенной на сервере. Например, для просмотра многостра- ничного каталога может передаваться номер страницы. Но параметры могут быть переданы и HTML-документу. В листинге 3.55 приведен пример созда- ния многостраничного HTML-документа.
Листинг 3.55. Многостраничный HTML-документ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Многостраничный HTML-документ</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-
1251">
</head>
<body>
<h1 style="text-align: center">Многостраничный HTML-документ</h1>
<div>
<a href="test.html?page=1¶m1=5¶m2=Hello">Страница
1</a><br>
<a href="test.html?page=2¶m1=5">Страница 2</a><br>
<a href="test.html?page=3">Страница 3</a><br><br>
<script type="text/javascript">
<!-
var arr1, arr2;
var obj = {};
if (window.location.search != "") {
var Str = window.location.search.substr(1);
if (Str.indexOf("&") != -1) {
arr1 = Str.split("&");
for (var i=0, c=arr1.length; i<c; i++) { arr2 = arr1[i].split("="); obj[arr2[0]] = arr2[1];
}
}
else {
arr2 = Str.split("=");
obj[arr2[0]] = arr2[1];
}
}
else {
obj.page = "1";
}
if (obj.page=="1") {
document.write("Содержание страницы 1.<br><br>");
}
if (obj.page=="2") {
document.write("Содержание страницы 2.<br><br>");
}
if (obj.page=="3") {
document.write("Содержание страницы 3.<br><br>");
}
if (obj.param1!=undefined) {
document.write("Параметр param1 равен " + obj.param1 + "<br>");
}
if (obj.param2!=undefined) {
document.write("Параметр param2 равен " + obj.param2 + "<br>");
}
//->
</script>
</div>
</body>
</html>
У этого метода есть большой минус. HTML-документ будет всегда содержать все фрагменты. При этом посетителю будет показываться только тот фраг- мент, который задан параметрами. Однако при каждом переходе по ссылкам документ будет заново загружаться с сервера. Если документ имеет большой размер, то он каждый раз будет долго загружаться только ради одного фраг- мента. А зачем? Ведь все нужные фрагменты уже есть в документе! По этой причине лучше воспользоваться свойством display объекта style, а не пере- давать параметры через URL-адрес. В листинге 3.56 показан пример исполь- зования свойства display объекта style.
Листинг 3.56. Использование свойства display объекта style
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Многостраничный HTML-документ</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-
1251">
<script type="text/javascript">
<!-
function f_go(page) {
switch (page) {
case 1:
document.getElementById("page1").style.display = "block"; document.getElementById("page2").style.display = "none"; document.getElementById("page3").style.display = "none"; break;
case 2:
document.getElementById("page1").style.display = "none";
document.getElementById("page2").style.display = "block";
document.getElementById("page3").style.display = "none";
break;
case 3:
document.getElementById("page1").style.display = "none"; document.getElementById("page2").style.display = "none"; document.getElementById("page3").style.display = "block";
}
}
//->
</script>
<style type="text/css">
div div { border: #FFE9B3 1px solid; background-color: #FFFBEF;
min-height: 100px; margin: 10px 5px 10px 5px }
</style>
</head>
<body>
<h1 style="text-align: center">Многостраничный HTML-документ</h1>
<div><a href="#" onclick="f_go(1); return false;">Страница 1</a>
<div id="page1">Содержание страницы 1.</div></div>
<div><a href="#" onclick="f_go(2); return false;">Страница 2</a>
<div id="page2" style="display: none">Содержание страницы 2.</div></div>
<div><a href="#" onclick="f_go(3); return false;">Страница 3</a>
<div id="page3" style="display: none">Содержание страницы 3.</div></div>
</body>
</html>
Этот пример и выглядит гораздо проще, и не требует никакой перезагрузки страницы.
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)
Похожие посты:
- Индексирование содержимого (0)
- Базовый анализ поисковых запросов (0)
- Структурирование схемы контента (0)
- Ссылки даются на URL-адреса, а не на страницы (0)
- Указание поисковой системе Google на связи между блоками (0)
- Демонстрация поисковой системе Google целой страницы (0)
- Информирование поисковой системы Google о подборках страниц (0)