Начнем с первой строки:
<SCRIPT LANGUAGE="JavaScript">Это код HTML, который дает браузеру понять, что с этого места начинается JavaScript. Кажется, это несложно. Любой сценарий JavaScript начинается с такой команды.
А как насчет части LANGUAGE(язык)="JavaScript"? Разве это необходимо? Да. Есть еще и другие типы сценариев, например, VBS или LiveScript. Так что команда LANGUAGE не даст браузеру запутаться.
Так как у нас всего три строчки текста, то можно сразу заглянуть в конец. Код
</SCRIPT>заканчивает любой сценарий JavaScript без исключений. Запомните это навсегда, потому что к этому вопросу мы больше возвращаться не будем. Начинаем со <SCRIPT LANGUAGE="javascript"> и заканчиваем </SCRIPT>. Двигаемся дальше...
Вот основная часть сценария:
document.write("<FONT COLOR='RED'>Это красный текст</FONT>")Не так уж трудно догадаться, что означает каждая часть сценария, но чтобы в дальнейшем пользоваться общими терминами, рассмотрим его подробно.
Сценарий устроен следующим образом. С помощью DOCUMENT объявляется документ (документ HTML). Этот документ будет изменен — в нем что-то будет написано (WRITE). То, что будет написано, находится внутри скобок.
|
|
Настала очередь терминов. DOCUMENT представляет собой объект. Слово WRITE (писать), отделенное точкой, называется методом объекта. Таким образом, сценарий по сути говорит: "Возьмите объект (что-то, уже существующее) и что-то в нем запишите".
Обратите внимание, что текст внутри скобок находится в кавычках. В HTML эти кавычки не требуются. Здесь они необходимы. Никогда нельзя про них забывать.
Текст в кавычках представляет собой простой код HTML. Легко увидеть в нем команду <FONT>, которая делает текст красным. Обратите внимание, что RED находится в одинарных кавычках. Если использовать двойные, JavaScript решит, что это конец строки, и получится, что только часть текста будет записана в объект, а это уже ошибка.
Запомните: внутри двойных кавычек используются одинарные.
Получается, что JavaScript перекрасил текст в красный цвет? Нет, это сделал HTML. А JavaScript только записал код на страницу.
Задание
Измените сценарий так, чтобы выводились две строки текста, красная и синяя. Но это надо сделать с помощью дополнительных команд JavaScript, а не просто добавить код HTML к приведенному примеру. На странице должно выводиться следующее:
Это красный текстЭто синий текстВозможное решение
... было создано следующим кодом:
<SCRIPT type="text/javascript"> document.write ("<FONT COLOR='RED'>Это красный текст</FONT><BR>") document.write ("<FONT COLOR='BLUE'>Это синий текст</FONT>")</SCRIPT>Результат получен добавлением в сценарий второй строки document.write и изменением кода HTML внутри экземпляра (параметра) метода. Добавлена также команда <BR> в конце первого экземпляра метода, чтобы получить две строки.
|
|
2. Урок: Сообщения об ошибках
Ошибки в сценариях. Виды ошибок и методы их поиска.
Концепция
В большинстве книг по JavaScript почти не рассматриваются сообщения об ошибках.
Видимо, авторы предполагают, что все делается правильно с самого первого раза и такие сообщения никогда не появляются. Добро пожаловать в реальный мир!
Если вы хотя бы раз пытались написать сценарий JavaScript или использовать на Web-странице готовый, то вам должно быть знакомо это чувство, которое возникает, когда вы считаете, что уже все в порядке и тут... бац! Выскакивает такое окошко:
==============
Изображение сообщения об ошибке
==============
В этом учебнике мы расскажем, что делать, когда возникают сообщения об ошибках. Когда вы начнете писать сценарии JavaScript, они будут появляться постоянно, так как являются неотъемлемой частью процесса создания.
Пожалуйста, запомните! В более поздних версиях MSIE и Navigator это окошко может не появляться.
При использовании MSIE сообщение об ошибке появится сначала как треугольный значок в нижнем левом углу. В этом треугольнике будет находиться восклицательный знак. Будет также присутствовать текст, сообщающий, что на странице встретились ошибки. Щелкните на этом треугольнике, чтобы получить сообщение об ошибке, которое рассматривается в данном учебнике. Или, если вы хотите, чтобы окно ошибки выводилось сразу, без щелчка на значке, перейдите в меню Tools (Сервис) и выберите Internet Options (Свойства обозревателя). В Internet Options щелкните на вкладке Advanced (Дополнительно) и поставьте флажок у строки "Display a notification about every script error" (Показывать уведомление о каждой ошибке сценария).
Затем, в зависимости от конфигурации системы, вы сможете получить окно ошибки. В окне ошибки существует также кнопка "Details" (Подробнее), при нажатии на которую выводится текстовое описание ошибки.
При использовании более поздней версии Netscape Navigator в строке состояния выводятся указания пользователю. При возникновении ошибки будет предложено ввести javascript: в строке адреса. Затем будет выведена ошибка и соответствующее текстовое описание.
Сообщение об ошибке
В основном ошибки бывают двух типов: синтаксиса и времени выполнения. Ошибка синтаксиса означает опечатку или неправильную конфигурацию JavaScript. Ошибка времени выполнения означает, что была использована неправильная команда. В любом случае получается ошибка. Где-то что-то было перепутано.
Существуют программы, которые помогают исправлять ошибки и выполнять так называемый процесс отладки ("debugging"), но все можно сделать вручную. На самом деле это даже легче, чем можно подумать.
Исправление ошибок
Говорят, что наилучший способ исправить ошибку — это ее не совершать, но сказать легче, чем сделать. Тем не менее можно свести количество ошибок к минимуму, пользуясь текстовым редактором без полей. Кроме того, отводите каждой команде JavaScript отдельную строку. Ни к чему разбивать длинные строки на несколько коротких. Это само по себе может привести к ошибке. И все же, можно поспорить, что каждый раз, принимаясь за создание сценариев, вы будете получать такие сообщения. Так что давайте разберемся, как их устранять.
В этих всплывающих окошках сообщений об ошибке есть одна замечательная вещь: они сами говорят, где и в чем состоит проблема. Взгляните на сообщение. У нас синтаксическая ошибка, означающая неправильную конфигурацию сценария, и находится она на строке 29. Более того, сообщение об ошибке прямо указывает на проблемную область. Было бы неплохо иметь такое и в HTML?
Строка ошибки
Когда сообщение об ошибке указывает на строку ошибки, то строку с ошибкой нужно отсчитывать от самого верха документа HTML, а не от первой строки JavaScript. Например, в приведенном ниже документе допущена ошибка в строке 9. Это ошибка синтаксиса, так как экземпляр (параметра) не заканчивается на той же строке, где начался. Видите, как скобка перескочила на следующую строчку?
|
|
Но почему ошибка на строке 9, а не 8? Потому, что счет начинается с верхнего края документа HTML, не пропуская ни одной строки. Вот этот документ еще раз с пронумерованными строками.
(строка 1) <HTML>(строка 2) <HEAD>(строка 3) <TITLE></TITLE>(строка 4) </HEAD>(строка 5) <BODY> (строка 6) (строка 7) <SCRIPT LANGUAGE="javascript">(строка 8) document.write("text for the page" (строка 9))(строка 10) </SCRIPT> (строка 11) </BODY> (строка 11) </HTML>Так что считайте все строки, даже пустые.
Что дальше?
Как только строка с ошибкой найдена, необходимо решить, что делать. Чаще всего это будет синтаксическая ошибка — либо разорванная строка, либо опечатка, либо двойные кавычки вместо одинарных (несбалансированные кавычки) и тому подобное.
Если это ошибка времени выполнения, значит, команда, на которую указывает сообщение, не укладывается в логическую последовательность. Например, сценарий вызывает кнопку с помощью команды, которая на самом деле вызывает текстовое поле.
Множественные ошибки
Ничто не раздражает больше, чем многократные сообщения об ошибках. Можно только сидеть и смотреть, как на экране плодятся окна. Можно решить, что многократные окна сообщений означают многократные ошибки. Не всегда.
JavaScript — это чрезвычайно логичный язык, требующий, чтобы все шло своим чередом, в линейной последовательности. Допустим, имеется 10 ошибок в длинном сценарии. Сообщения накладываются одно на другое, и последняя обнаруженная компьютером ошибка окажется сверху. Не пытайтесь сразу ее исправлять, возможно, в действительности ее даже не существует.
Может случиться так, что первая ошибка сценария вызывает все остальные. Так что исправлять ошибки следует последовательно с начала документа HTML. Сколько раз бывало так, что выскакивает 20 окон с ошибками, а разрешить все проблемы удается исправлением одной единственной первой ошибки!
|
|
Поэтому исправлять ошибки надо по одной от начала до конца. И каждый раз, исправив одну ошибку, запускайте сценарий. Можно получить 20 сообщений об ошибках, а исправлять придется одну или две.