2.3 Использование JavaScript-выражения как значения HTML-атрибутов.
При использовании JavaScript можно определить JavaScript- выражение
как значение для тега HTML. Это позволяет создавать более гибкие HTML-страницы,
потому что признаки одного HTML элемента могут зависеть от ранее размещенных
на странице элементов. Для включения в текст документов символов, имеющих
специальный смысл в языке HTML, стандарт языка предлагает специальную конструкцию
в вид последовательности из трех объектов:
- символ & (амперсанд);
- числовой код или символьное имя;
- символ ; (точка с запятой).
Например, можно включить символ "больше" ( > ) с помощью
последовательности $GT; и "меньше" ( < ) с помощью $LT;. Применение
таких последовательностей связано с тем, что указанные символы являются
зарезервированными в языке HTML. JavaScript-объекты также начинаются с
символом & и заканчиваются точкой с запятой(;). Вместо имени или номера
используется JavaScript-выражение, заключенное в фигурные скобки { }. Можно
использовать JavaScript-объекты только там, где употребимо значение тега
HTML. Например, пусть в документе определена средствами JavaScript переменная
barWidth, имеющая значение равное 50. Теперь можно создать горизонтальную
линию на половину окна следующим образом:
<HR WIDTH="&{barWidth};%" ALIGN="LEFT">
Как и для других HTML-элементов, после того, как расположение произошло,
образ страницы может измениться, после ее перезагрузки. Следующий пример
определяет простую функцию в части HEAD документа и вызывает ее в части
BODY документа:
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Скрываем от старых браузеров
function myfunc(number) { return number + number}
// Конец сокрытия -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
document.write("Two arguments is ", myfunc(7), ".")
</SCRIPT>
<P> OK !
</BODY>
Функция myfunc имеет один аргумент, названный number. Состоит она из
одного оператора return number+number, который должен возвратить удвоенное
значение аргумента функции. Вызывается функция с аргументом 7. Результат,
выводимый на экран выглядит следующим образом:
Two arguments is 14.
OK !
В функции myfunc использовался оператор document.write(...) для вывода
результата в Navigator'е. Этот оператор вызывает write-метод для объекта
document в стандартной нотации: objectName.methodName(arguments...) где
objectName есть имя объекта, methodName есть имя метода, и arguments есть
список аргументов метода, отделяемых запятыми.
2.3.1 Использование write-метода.
С помощью write-метода можно выводить информацию в окно навигатора,
в общем-то так же, как и с помощью HTML- операторов, но write-метод обладает
большими возможностями, например можно работать с переменными аргументами.
По этим причинам, write - один из наиболее часто используемых JavaScript-методов.
write-метод работает с любом числом строковых аргументов, которые могут
быть строковыми литералами или переменными. Можно также использовать строковую
конкатенацию - оператор ( + ), чтобы создать одну строку из нескольких.
Рассмотрим следующий пример, который производит динамический HTML:
<HEAD> <SCRIPT>
<!--- Скрываем от старого браузера
// Эта функция выводит горизонтальную линию заданной ширины
function bar(widthPct) { document.write("<HR ALIGN='left'
WIDTH=" + widthPct + "%>")}
// Эта функция показывает заголовок указанного уровня и неко-
// торый текст
function output(headLevel, headText, text) {
document.write("<H", headLevel, ">", headText, "</H",
headLevel, "><P>", text)
}
// конец сокрытия-->
</SCRIPT> </HEAD>
<BODY>
<SCRIPT>
<!--- начало сокрытия
bar(25)
output(2,"Это заголовок 2-го уровня", "JavaScript это очень просто...")
// конец сокрытия -->
</SCRIPT>
<P> Это стандартный HTML, в отличие от предыдущей строки,
которая сгенерирована.
</BODY>
Раздел HEAD этого документа определяет две функции:
-bar - функция выводит горизонтальную линию заданной ширины
-output - функция показывает заголовок указанного уровня и некоторый
текст
Раздел BODY вызывает обе функции с фактическими параметрами и результат
вызова показан ниже.
;
Это стандартный HTML, в отличие от предыдущей строки,которая сгенерирована.
Следующий оператор выводит линию заданной ширины:
Document.write ("<HR ALIGN='left' WIDTH=", widthPct, "%>")
Замечание: здесь использованы одинарные кавычки внутри двойных. Это
нужно делать всякий раз, когда хотите указать строку в кавычках внутри
строкового литерала. Тогда вызов bar с аргументом двадцать пять производит
продукцию эквивалентную следующему HTML:
< HR ALIGN= "left" WIDTH=25 % >
Имеется вариант write - writeln, который добавляет перевод строки. Поскольку
HTML вообще игнорирует перевод строки, то нет разницы между write и writeln,
кроме раздела .
[ Оглавление ] [ Дальше ]
|