О спецификации HTML 4.0


Практики макросов скриптов в настоящее время


Тело макроса состоит из одного или нескольких выражений в языке скрипта по умолчанию (как в атрибутах для внутренних событий). Точка с запятой, следующая за правой скобкой, всегда обязательна, в противном случае символ скобки "}" считается частью тела макроса. Не нужно и говорить, что кавычки для атрибутов, содержащих макросы скриптов, обязательны.

Обработка атрибутов CDATA происходит следующим образом:

  1. Синтаксический анализатор SGML оценивает все объекты SGML (например, ">").
  2. Затем ядро скриптов оценивает макросы скриптов.
  3. Наконец, результирующая строка символов передается в приложение для последующей обработки.

Обработка макросов происходит при загрузке документа (или при перезагрузке), но не происходит при изменении размера документа, перерисовке и т.д.

ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:

Вот несколько примеров использования JavaScript. Первый устанавливает в документе случайный цвет фона:

<BODY bgcolor='&{randomrbg};'>

Вы можете установить более светлый фон в вечернее время:

<BODY bgcolor='&{if(Date.getHours > 18)...};'>

В следующем примере JavaScript используется для устанвоки координат клиентской навигационной карты:

<MAP NAME=foo> <AREA shape="rect" coords="&{myrect(imageuri)};" href="&{myuri};" alt=""> </MAP>

В этом примере устанавливается размер изображения в зависимости от свойств документа:

<IMG src="bar.gif" width='&{document.banner.width/2};' height='50%' alt="баннер">

С помощью скрипта можно устанавливать URI ссылки или изображения:

<SCRIPT type="text/javascript"> function manufacturer(widget) { ... } function location(manufacturer) { ... } function logo(manufacturer) { ... } </SCRIPT> <A href='&{location(manufacturer("widget"))};'>widget</A> <IMG src='&{logo(manufacturer("widget"))};' alt="logo">

В последнем примере показано, как атрибуты SGML CDATA могут заключаться в кавычки с использованием двойных или одинарных кавычек. Если Вы заключаете строку атрибута в одинарные кавычки, в строку атрибута следует включить двойные. Другой подход - использвоание &quot; в качестве двойных кавычек:

<IMG src="&{logo(manufacturer(&quot;widget&quot;))};" alt="logo">




- Начало -  - Назад -  - Вперед -