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

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

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

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

Мы должны создать и get-функцию, и set-функцию, если хотим, чтобы свойство было доступно и для чтения, и для записи. Если задана только get-функция, свойство будет доступно только для чтения. Если же задана только set-функция, свойство станет доступным только для записи.

Если заданы get- и set-функции, значение атрибута internalname игнорируется.

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

Пример 1

Давайте создадим для всех гиперссылок страницы jspsIEBehaviorSimple.html свойство enabled. Будучи установленным в true (это, кстати, значение по умолчанию), оно разрешает переход по гиперссылке при щелчке по ней. Значение false, напротив, запрещает это.

Вот содержимое обновленного файла jspsffiBehaviorSimple.html:

<HTML> <HEAD>

<STYLE TYPE="text/css">

A { behavior:url(jspslEBehaviorSimple.htc); } </STYLE> </HEAD> <BODY>

<P><A HREF="pagel.html">Страница 1</Ax/P> <P><A HREF="page2.html">Страница 2</Ах/Р> <P><A HREF="page3 .html">Страница 3</Ах/Р> </BODY> </HTML>

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

А вот содержимое переписанного файла jspsffiBehaviorSimple.htc:

<PUBLIC:COMPONENT>

<PUBLIC:ATTACH EVENT="onclick" ONEVENT="elementOnClick();"/> <PUBLIC:ATTACH EVENT="oncontentready" ONEVENT="elementOnReady();"/> <PUBLIC:PROPERTY NAME="enabled" INTERNALNAME="isEnabled"/> <SCRIPT TYPE="text/javascript"> var isEnabled = "true";

function elementOnClick()

{

event. retumValue = (isEnabled == "true");

}

function elementOnReady() {

if (isEnabled == "true")

element.style.textDecoration = "none" else

element.style.textDecoration = "line-through"; } </SCRIPT> </PUBLIC:COMPONENT>

Откроем новый файл jspsffiBehaviorSimple.html в Web-обозревателе. Мы сразу же заметим, что все гиперссылки реагируют на щелчки мышью. Так и должно было быть, поскольку мы не указали в их тегах атрибуты enabled, соответствующие созданному нами свойству, значит, по умолчанию оно получит значение "true".

Теперь давайте немного исправим этот файл, добавив в тег <а>, создающий первую гиперссылку, атрибут enabled со значением "false": <Р><А HREF="pagel.html" ENABLED="false">Страница 1</Ax/P>

Сохраним этот файл и снова загрузим его в Web-обозревателе. Теперь первая гиперссылка зачеркнута и не функционирует. Наше поведение работает!

Пример 2

Исправим немного только что созданное поведение таким образом, чтобы при присвоении свойству enabled экземпляра объекта, соответствующего гиперссылке, нового значения внешний вид этой гиперссылки соответственно изменялся. Для этого нам придется написать get- и set-функции.

Начнем исправления с файла jspsIEBehaviorSimple.htc:

<PUBLIC:COMPONENTS

<PUBLIC:ATTACH EVENT="onclick" ONEVENT="elementOnClick();"/> <PUBLIC:PROPERTY NAME="enabled" GET="getIsEnabled" PUT="putIsEnabled"ID="prpEnabled"/> <SCRIPT TYPE="text/javascript"> var isEnabled = true;

function elementOnClick() {

event. retumValue = isEnabled; }                                                                                       

function get!sEnabled() {

return isEnabled.toString(); }

function putlsEnabled(propValue) {

isEnabled = (propValue == "true"); prpEnabled.fireChange(); if (isEnabled)

element, style. textDec'oration = "none" else

element.style.textDecoration = "line-through"; } </SCRIPTS </PUBLIC:COMPONENTS>

Здесь мы внесли одно усовершенствование — стали хранить значение свойства в переменной isEnabled в логическом виде. Все-таки с логическими величинами управляться проще, чем со строковыми.

А вот исправленный файл страницы jspsIEBehaviorSimple.html, с помощью которого мы будем тестировать новое поведение:

<HTML> <HEAD>

<STYLE TYPE="text/css">

A { behavior:url(jspsIEBehaviorSimple.htc); } </STYLE>

<SCRIPT TYPE="text/javascript"> function toggleLinkEnabled() {

var hrflObject = document.all["hrfl"]; if (hrflObject.enabled == "true")

hrflObject.enabled = "false" else

hrflObject.enabled = "true"; } </SCRIPT> </HEAD> <BODY>

<P><A HREF="pagel.html" ID="hrfl">Страница 1</A></P> <P><A HREF="page2.html">Страница 2</А></Р>

<P><A HREF="#" ONCLICK="toggleLinkEnabled(); ">Переключить</Ах/Р> </BODY> </HTML>


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


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

0.1346