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

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


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

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

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

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

    Вот несколько примеров использования 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">



    Содержание раздела