Шрифт:
Строка, содержащая дату последнего изменения документа.
location
Это свойство ссылается на тот же объект
Location
, что и свойство location
объекта Window
.
referrer
URL-адрес документа, содержащего ссылку (если таковая существует), которая привела броузер к текущему документу. Это свойство имеет то же значение, что и HTTP-заголовок Referer, но записывается с двумя буквами r.
title
Текст между тегами
<title>
и </title>
данного документа.
URL
Свойство
URL
документа является строкой, доступной только для чтения, а не объектом Location
. Значение этого свойства совпадает с начальным значением свойства location.href
, но, в отличие от объекта Location
, не является динамическим. Если пользователь выполнит переход, указав новый идентификатор фрагмента внутри документа, то свойство location.href
изменится, а свойство document.URL
– нет. Из всех этих свойств наибольший интерес представляет свойство
referrer
: оно содержит URL-адрес документа, содержащего ссылку, которая привела пользователя к текущему документу. Это свойство можно было бы использовать, как показано ниже:
if (document.referrer.indexOf(" http://www.google.com/search ?") == 0) {
var args = document.referrer.substring(ref.index0f("?")+1).split("&");
for(var і = 0; і < args.length; i++) {
if (args[і].substrings,2) == "q=") {
document.write("flo6po пожаловать, пользователь Google. ");
document.write("Вы искали: " +
unescape(args[i]. substring^)). replace(' + ', ' ');
break;
}
}
}
Метод
document.write,
использованный в этом примере, является темой следующего раздела. 15.10.2. Метод document.write
Метод
document.write
был одним из первых методов, реализованных еще в вебброузере Netscape 2. Он появился еще до создания модели DOM и представлял единственный способ отображения динамически изменяемого текста в документе. В современных сценариях надобность в этом методе отпала, но вы наверняка встретите его в существующем программном коде. Метод
document.write
объединяет свои строковые аргументы и вставляет получившуюся строку в документ, в точку вызова метода. По завершении выполнения сценария броузер выполнит синтаксический анализ сгенерированного вывода и отобразит его. Например, следующий фрагмент использует метод write
для динамического вывода информации в статический HTML-документ:
<script>
document.write("3arоловок документа: " + document.title);
document.write("<br>URL: " + document.URL);
document.write("<br>Ссылающийся на него документ: " + document, referrer);
document.write("<br>изменен: " + document.lastModified);
document.write("<br>Открыт: " + new Date);
</script>
Важно понимать, что метод
write
можно использовать для вывода разметки HTML только в процессе синтаксического анализа документа. То есть вызывать метод document.write
из программного кода верхнего уровня в теге <script>
можно только в случае, если выполнение сценария является частью процесса анализа документа. Если поместить вызов document.write
в определение функции и затем вызвать эту функцию из обработчика события, результат окажется неожиданным - этот вызов уничтожит текущий документ и все содержащиеся в нем сценарии! (Почему это происходит, будет описано чуть ниже.) По тем же причинам нельзя использовать document.write
в сценариях с установленными атрибутами defer
или async
. Пример 13.3 в главе 13 использует метод
document.write
указанным способом чтобы сгенерировать более сложный вывод. Метод
write
можно использовать для создания полностью новых документов в других окнах и фреймах. (Однако при работе с другими окнами и фреймами необходимо позаботиться о том, чтобы не нарушать политику общего происхождения.) Первый вызов метода write
другого документа полностью уничтожит имеющееся содержимое этого документа. Метод write
можно вызывать многократно, тем самым добавляя новое содержимое в документ. Содержимое, передаваемое методу write,
может буферизоваться (и не отображаться), пока не будет выполнен завершающий вызов метода close
объекта документа, сообщающий парсеру, что работа с документом окончена и он может выполнить разбор документа и отобразить его.