Текущая практика для макросов сценариев
Тело макроса состоит из одного или более операторов на языке сценариев по умолчанию (как и у внутренних атрибутов событий). Точка с запятой перед правой скобкой необходима всегда, поскольку иначе символ "}" рассматривается как часть тела макроса. Нужно также отметить, что кавычки всегда необходимы для атрибутов, содержащих макросы сценариев.
Атрибуты CDATA обрабатываются так:
Обработка макросов имеет место при загрузке документа (или перезагрузке), но не происходит при изменении размера документа, перерисовке и т.п.
НЕ РЕКОМЕНДУЕТСЯ:
Вот несколько примеров с использованием JavaScript. В первом чстаноавливается случайное значение для цвета фона страницы:
<BODY bgcolor='&{randomrgb};'>
Возможно, Вы хотите уменьшить яркость фона в вечернее время:
<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="banner">
Вы можете установить 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 могут быть выделены кавычками с использованием знаков одиночной или двойной кавычки. Если Вы используете одиночные кавычки вокруг строки, можно включить двойные кавычки как часть содержимого строки. Другой подход заключается в использовании " для обозначения двойной кавычки:
<IMG src="&{logo(manufacturer("widget"))};" alt="logo">