Глава 1.9. Сценарии1.9.1. Общее описаниеСценарий клиента это программа, которая вызывается из HTML-документа или непосредственно в него вложена и исполняется на компьютере-клиенте. Сценарии позволяют авторам дополнить их HTML-документы динамически изменяемыми свойствами и интерактивными возможностями, а именно:
Существуют два типа сценариев, которые могут быть присоединены к HTML-документу:
1.9.2. Определение сценария: элемент SCRIPTСинтаксис: <SCRIPT> </SCRIPT> Атрибуты: type = тип файла (тип MIME языка сценария) charset = кодировка (кодировка символов) src = URI (URI внешнего сценария) defer = defer (только декларация) Поддержка: Атрибут charset игнорируется (5.0+) Атрибуты charset и defer игнорируются (4.0+) Элемент SCRIPT определяет сценарий клиента. Он может содержаться в элементе HEAD, а также в любых текстовых и блочных элементах тела документа. Его содержимым должен быть сценарий на языке программирования, заданном обязательным атрибутом type согласно приведенной ниже таблице 1.7. На практике атрибут type используется редко, т. к. обозреватели Microscape поддерживают более удобный нестандартный атрибут language, имеющий то же самое назначение, но более удобный синтаксис:
Атрибут type может быть опущен, если документ содержит метаописатель, задающий
язык программирования сценариев, принятый по умолчанию, например Сценарии подразделяются на вложенные и внешние. Вложенный сценарий размещается непосредственно внутри элемента SCRIPT; в этом случае атрибуты src и charset должны отсутствовать. Пример внутреннего сценария: <SCRIPT type="text/javascript"> document.write("<p><b>Hello World!<\/b>") </SCRIPT> Внешний сценарий хранится в отдельном файле; в этом случае атрибут src должен содержать URI этого файла, а атрибут charset может использоваться для задания его кодировки символов (обычно это "ISO-8859-1"). Обратите внимание, что в случае вложенного сценария атрибут charset игнорируется. Пример внешнего сценария: <SCRIPT type="text/javascript" src="global/hello.js"></SCRIPT> Необязательный атрибут defer указывает, что обозреватель может отложить обработку данного сценария до завершения загрузки и отображения документа. Такой сценарий не должен модифицировать содержимое документа и не должен содержать обработчиков событий, которые могут произойти в процессе загрузки документа. Старые обозреватели, не поддерживающие сценариев, могут отображать содержимое элемента SCRIPT как обычный текст документа. Во избежании этого рекомендуется помещать текст сценария внутрь HTML-комментария, например: <SCRIPT type="text/javascript"> <!-- начало сценария document.write("<p><b>Hello, World!<\/b>"); // конец сценария --> </SCRIPT> Обратите внимание, что "-->" содержится в однострочном комменарии языка JavaScript, начинающемся с "//". Примеры таких комментариев для других языков программирования будут приведены ниже. 1.9.3. Альтернативное содержание: элемент NOSCRIPTСинтаксис: <NOSCRIPT> </NOSCRIPT> (блочный элемент) Атрибуты: id, class, style, title, lang, dir, события Поддержка: Все атрибуты игнорируются (5.0+) Все атрибуты игнорируются (4.0+) Элемент NOSCRIPT определяет альтернативное содержание на тот случай, когда обозреватель не может исполнить ранее приведенный сценарий. Точнее говоря, его содержимое должно отображаться только в следующих случаях:
Элемент NOSCRIPT может содержать любые блочные элементы. Он может содержаться в элементах BLOCKQUOTE, BODY, BUTTON, DD, DEL, DIV, FIELDSET, FORM, INS, LI, MAP, NOSCRIPT, OBJECT, TD и TH. Вообще говоря, полезность данного элемента невелика, так как сценарии обычно используются для динамического изменения Веб-страницы, которое невозможно достичь статическими средствами. Пример: <SCRIPT type="text/vbscript"> сценарий на языке VBScript, вставляющий данные в документ </SCRIPT> <NOSCRIPT> <P>Доступ к <A href="http://someplace.com/data">данным.</A></P> </NOSCRIPT> 1.9.4. Языки программирования сценариевПоддержка сценариев в языке HTML не зависит от языка программирования, на котором эти сценарии написаны. Выше уже были перечислены названия наиболее распространенных языков программирования сценариев, и здесь мы приводим краткую характеристику каждого из них. Важно понимать, что все сценарные языки являются интерпретируемыми. Это означает, что обозреватель считывает исходный текст сценария вместе с HTML-документом, а затем исполняет его без компиляции в промежуточную форму. О том, как определить имена и версии установленных в системе языков, см. WDH+: Версии сценарных языков. JavaScript (JScript)JavaScript был разработан Бренданом Эйком (Brendan Eich) в Netscape Communications как язык сценариев для обозревателей Netscape Navigator, начиная с версии 2.0. В дальнейшем к развитию этого языка подключилась корпорация Microsoft, чьи обозреватели Internet Explorer поддерживают JavaScript, начиная с версии 3.0. Версия Microsoft получила название JScipt, поскольку JavaScript является зарегистрированной маркой фирмы Netscape. JavaScript это единственный язык сценариев, поддержка которого встроена в наиболее популярные обозреватели, что делает его стандартом de facto для программирования сценариев. Подробное описание JavaScript приведено в Части III. Пример сценария: <SCRIPT type="text/javascript"> <!-- начало сценария document.write("Hello, world!"); // конец сценария --> </SCRIPT> PerlScriptСценарная версия языка PERL, работающая на стороне клиента под управлением Microsoft Internet Explorer 4.0+ и на стороне сервера под управлением Microsoft Internet Information Server 3.0+. Для его использования в Веб-страницах необходимо установить PerlScript на каждом компьютере-клиенте, поэтому он может применяться только в интрасетях. Рекомендуется использовать PerlScript в тех случаях, когда Вам необходима интенсивная обработка символьных выражений. Его последнюю версию можно бесплатно загрузить с узла http://www.activestate.com/ActivePerl/ . Пример сценария: <SCRIPT type="text/perlscript"> <!-- начало сценария $window->document->write('Hello, world!'); # конец сценария --> </SCRIPT> TCL (Tool Command Language)TCL был разработан Джоном Аустерхаутом (John Ousterhout) в конце 80-х. Часто упоминается как TCL/TK, поскольку обычно используется совместно с пакетом создания пользовательских интерфейсов TK. Для его использования в Веб-страницах необходимо установить TCL на каждом компьютере-клиенте, поэтому он может применяться только в интрасетях. Рекомендуется использовать TCL в тех случаях, когда Вам необходимо построение сложных графических пользовательских интерфейсов. Его последнюю версию можно бесплатно загрузить с узла http://dev.scriptics.com/ . <SCRIPT type="text/tcl"> <!-- начало сценария document write("Hello, world!") # конец сценария --> </SCRIPT> VBScriptСценарная версия языка Microsoft Visual Basic. Поддерживается только обозревателем Microsoft Internet Explorer и большинством разработчиков воспринимается как порождение ностальгии Билла Гейтса по программистской юности. Пример сценария: <SCRIPT type="text/vbscript"> <!-- начало сценария Document.Write "Hello, World!" ' конец сценария --> </SCRIPT> | |||||||||||||||