Document.Write(navigator.AppVersion) ;

Язык создания сценариев JavaScript

Для написания динамических веб-страниц используются фрагменты кода, написанные на языке JavaScript, который имеет синтаксис, отличный от HTML. Язык программирования JavaScript разработан фирмой Netscape для создания интерактивных HTML-документов. Это объектно-ориентированный язык разработки встраиваемых приложений, выполняющихся как на стороне клиента, так и на стороне сервера. Синтаксис языка очень похож на синтаксис языка Java — поэтому его часто называют Java-подобным.

Синтаксис языка

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

Для удобства чтения кода приложения в нем можно расположить комментарии. Любая последовательность символов, следующая за двумя косыми чертами (//), рассматривается как комментарий. Этот прием позволяет задать комментарий, расположенный на одной строке. Для задания многострочных комментариев используется синтаксис, заимствованный из языков Java и С.

Язык JavaScript чувствителен к регистру. Это означает, что строчные и прописные буквы алфавита считаются разными символами.

Размещение операторов языка на странице

Встроить сценарий JavaScript в HTML-страницу можно несколькими способами:

  • Задать операторы языка внутри тэга <SCRIPT> языка HTML
  • Указать файл с кодом JavaScript в параметре SRC тэга <SCRIPT>
  • Использовать выражения JavaScript в качестве значений параметров тэгов
  • HTML
  • Определить обработчик событий в тэге HTML

Использование тэга <SCRIPT>

Для внедрения в HTML-страницу сценария JavaScript в спецификацию языка HTML был введен тэг-контейнер <SCRIPT>. . .</SCRIPT>, внутри которого могут располагаться операторы языка JavaScript. Обычно браузеры, не поддерживающие какие-нибудь тэги HTML, просто их игнорируют, анализируя, однако, содержимое пропускаемых тэгов с точки зрения синтаксиса языка HTML, что может приводить к ошибкам при отображении страницы. Во избежание подобной ситуации следует помещать операторы языка

JavaScript в контейнер комментария < ! - -и// — >, как показано ниже

<SCRIPT [LANGUAGE="JavaScript"]>

<! - -

//-->

Операторы JavaScript

</SCRIPT>

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

Следующий сценарий использует метод alert объекта documentдля вывода диалогового окна с сообщением:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>SCRIPT!</TITLE>

</HEAD>

<BODY>

<SCRIPT>

document.alert ( "Загрузился файл сценария ! " )

</SCRIPT>

</BODY>

</HTML>

(Примечание: метод alert может быть использован без указания объекта document. если пример не запустил диалоговое окно, то попробуйте убрать слово document.)

Следующий сценарий использует метод writeобъекта documentдля вывода текстовой строки в страничку:

<SCRIPT>

document.write("Эта страница написана на JavaScript!");

</SCRIPT>

Ладно, давайте немного изменим текст кода (для экономии места мы приводим только текст сценария, предполагая, что все остальные теги остаются такими же, как в предыдущем примере):

<SCRIPT>

window.status = "Эта страница написана на JavaScript!";

</SCRIPT>

Теперь окно броузера абсолютно пустое! Но это и правильно, ведь мы же не вводили никакого текста. Зато если вы посмотрите на строку состояния, то увидите там нашу надпись. В этой строке всегда появляется значение, присвоенное объекту window.status. Знак равенства в JavaScript означает “присвоить значение”.

Можно еще немного изменить код предыдущего примера:

<SCRIPT>

window.status = "Эта страница написана на JavaScript!";

setTimeout("window.status = 'А вы как думали?'",2000);

</SCRIPT>

Теперь в момент загрузки наша страница будет выглядеть так же, как и в предыдущем примере, однако через две секунды содержимое строки состояния изменится на фразу “А вы как думали?”. Дело в том, что функция setTimeout(), которую мы здесь использовали, совершает действие, определенное внутри нее, с некоторой задержкой. Эта задержка исчисляется в миллисекундах (тысячных долях секунды). Соответственно, значение 2000 соответствует задержке в 2 секунды.

Само действие определяется в виде строки, то есть должно быть заключено в кавычки. Поэтому фразу “А вы как думали?” пришлось заключить в другой тип кавычек — так называемые одинарные, чтобы броузер не “запутался”. В JavaScript (как и в HTML) допускается использование и тех, и других кавычек, нужно только внимательно следить, чтобы все кавычки в нужном месте закрывались. Нельзя было написать так:

. setTimeout("window.status = "А вы как думали?"", 2000);

поскольку тогда броузер “решил бы”, что строка закончилась после знака равенства, а далее, не встретив запятой, пожаловался бы на ошибку. Кстати, необходимо внимательно следить, чтобы в JavaScript-фрагментах не было ошибок. Вы помните, что если броузер встречает ошибку синтаксиса HTML (например, непонятный ему тег), то он его просто игнорирует. Но если броузер встретит ошибку в коде JavaScript, то будет выдано сообщение об ошибке, причем весь сценарий не будет исполнен.

Еще одна деталь: в JavaScript необходимо соблюдать регистр символов, так как в этом языке различаются прописные и строчные буквы. Напри мер, если вместо setTimeoutO написать SetTimeoutO или settimeoutQ, то будет выдано сообщение об ошибке.

Чтобы загрузить другую веб-страницу вместо данной, нужно присвоить новое значение свойству window.location.href. Например, если написать:

window.location.href = "msie.html";

то текущая страница будет заменена в окне броузера на страницу msie.html. Давайте перед загрузкой новой страницы создадим соответствующее сообщение:

document.write ("Сейчас будет загружена страница для Internet Explorer ") ;

setTimeout("window.location.href = 'msie.html'", 3000);

При этом нам пришлось использовать функцию setTimeout, чтобы пользователь успел увидеть нашу надпись.

Как определить номер версии броузера? Для этого существует свойство navigator.appVersion. Однако его значением является не число (собственно номер версии), а целая строка. Например, если написать:

document.write(navigator.appVersion) ;

то в броузере Internet Explorer 5 будет выдано такое сообщение:

Наши рекомендации