Текущая практика для макросов сценариев
Тело макроса состоит из одного или более операторов на языке сценариев по умолчанию (как и у внутренних атрибутов событий). Точка с запятой перед правой скобкой необходима всегда, поскольку иначе символ "}" рассматривается как часть тела макроса. Нужно также отметить, что кавычки всегда необходимы для атрибутов, содержащих макросы сценариев.
Атрибуты CDATA обрабатываются так:
- Разборщик SGML вычисляет все мнемоники SGML (напр., ">").
- Затем макросы сценариев вычисляются машиной скриптов.
- Наконец, результирующая строка символов предаётся приложению для последующей обработки.
Обработка макросов имеет место при загрузке документа (или перезагрузке), но не происходит при изменении размера документа, перерисовке и т.п.
НЕ РЕКОМЕНДУЕТСЯ: Вот несколько примеров с использованием 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"> |