Вернемся к разбору сценария

Начнем с первой строки:

<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. Это ошибка синтаксиса, так как экземпляр (параметра) не заканчивается на той же строке, где начался. Видите, как скобка перескочила на следующую строчку?

<HTML><HEAD><TITLE></TITLE></HEAD><BODY> <SCRIPT LANGUAGE="javascript">document.write("текст для страницы")</SCRIPT></BODY></HTML>

Но почему ошибка на строке 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 сообщений об ошибках, а исправлять придется одну или две.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: