|    | 
СИ-БИ техника | КВ техника | УКВ техника | Радиоизмерения | Защита от TVI | Источники питания | Софт | Расчеты | Справочники
Главная arrow Программирование arrow Java arrow Работа с поведениями Microsoft Internet Explorer  

Работа с поведениями Microsoft Internet Explorer

Оглавление
Работа с поведениями Microsoft Internet Explorer
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
Страница 2 из 6

И в этом случае нам не придется переделывать страницу jspsJEBehaviorSim-ple.html. Вот она, мощь поведений!

Как создать новое свойство поведения?

Проблема

Конечно, вынесение обработки событий в поведения здорово помогает в работе. А можно ли аналогичным образом добавить элементам страницы новые свойства, причем так, чтобы их значения можно было бы задавать прямо в теге, как его атрибут?

Решение

Конечно можно! Для этого используется одинарный тег <public:property>. Вот его формат:

<PUBLIC:PROPERTY NАМЕ="<Имя свойства>" . [VALUE="<Значение по умолчанию>"} [INTERNALNAME= "<Имя переменной, соответствующей свойству>"] [GET="<Вызов get-функции>"] [PUT="<Вызов put-функции>п] [ID=<Имя элемента поведения, описывающего свойство>]/>

Единственный обязательный атрибут тега <public:property>— name, в котором задается имя свойства. Встретив такой тег, Web-обозреватель сам сформирует в памяти переменную, имя которой совпадает с именем свойства, и поместит в него заданное в атрибуте тега или свойстве экземпляра объекта, соответствующего элементу страницы. Нам самим объявлять эту переменную не нужно.

Народ предупреждает!

Если значение свойства задано с помощью соответствующего атрибута в теге элемента страницы, оно передается в свойство в строковом виде.

Необязательный атрибут value позволяет задать значение свойства по умолчанию. Это значение свойство примет в том случае, если оно не было явно задано в атрибуте тега.

Часто бывает так, что выбранное имя свойства в коде JavaScript использовать невозможно. Это может случиться, если его имя совпадает с какой-либо переменной, функцией или объектом, уже объявленным в коде поведения. Специально для такого случая у нас имеется возможность сохранить значение свойства в другой переменной. Вот как это делается...

1. Объявляем глобальную переменную, в которой будет храниться значение свойства, и присваиваем ей значение свойства по умолчанию в строковом виде. Атрибут value тега <public:property> в этом случае можно не указывать.

2. Указываем имя объявленной переменной в значении необязательного атрибута INTERNALNAME тега <PUBLIC: PROPERTY>.

Теперь для доступа к значению свойства мы можем использовать эту переменную.

Очень часто бывает так, что значение свойства не хранится в памяти постоянно, а получается в результате каких-либо вычислений. В таком случае мы поступим следующим образом.

1.  Объявим функцию, которая будет выполнять соответствующие вычисления и возвращать их результат. Параметров эта функция принимать не должна.

2.  Поместим имя (только имя, а не вызов!) этой функции в значение необязательного атрибута get тега <PUBLIC: property>.

Кстати, функции, занимающиеся вычислениями значения какого-либо свойства, часто называют get-функциями, от английского "get" — "получить".

Также часто приходится при занесении нового значения в свойство выполнять какие-либо сторонние действия (например, обновлять содержимое элемента страницы). В таком случае алгоритм наших действий приведен ниже.

1.  Объявляем переменную, в которой будет храниться значение свойства, — это обязательно! Указывать ее имя в атрибуте internalname тега <public:property> в этом случае не нужно.

2.  Объявляем функцию, принимающую единственный параметр— новое значение свойства — и не возвращающую результата.

3.  Даем имя тегу <PUBLIC: property>, описывающему свойство. Это делается с помощью хорошо знакомого нам необязательного атрибута id.

4.  В теле функции пишем код, который заносит значения полученного параметра в объявленную ранее переменную и выполняет нужные сторонние действия.

5.  Там же, в теле функции, записываем вызов метода fireChange экземпляра объекта, представляющего тег <public : property>, описывающий данное свойство. Получить доступ к этому экземпляру объекта можно через имя, которое мы дали с помощью атрибута id. Метод firechange не принимает параметров, не возвращает результат и служит для информирования Web-обозревателя о том, что значение свойства элемента страницы изменилось.

6.  Записываем имя (опять же, только имя, а не вызов!) этой функции в значение необязательного атрибута put тега <public:property>.

7.  Если хотим, чтобы свойство было доступно еще и для чтения, а не только для записи, создаем get-функцию. Как это сделать, было описано ранее.


« Пред. - След. »


RLBN.ru - Электроника и компьютеры

0.1403
Hosted by uCoz