Лекции (989962), страница 46
Текст из файла (страница 46)
Пример см. ниже.Программы могут записываться в любом месте HTML-документа. Если программа не оформленаключевыми словами SUB…END SUB, то она выполняется непосредственно при анализе страницы.Например, следующая программа выведет сообщение "Приветик" после того, как на HTML-странице будетотображен текст "До начала программы", но до того, как на HTML-странице будет отображен текст "Послеокончания программы".<HTML><HEAD> <TITLE> Программа на VBScript </TITLE> </HEAD><BODY>До начала программы<SCRIPT LANGUAGE="VBScript"><!-MsgBox "Приветик"--></SCRIPT>После окончания программы</BODY></HTML>Если же текст программы оформлен ключевыми словами SUB…END SUB (FUNCTION…END FUNCTION),то такая программа может использоваться как обычная процедура (функция) вызываемая из другихпрограмм.
Если имя процедуры удовлетворяет определенным требованиям, то такая процедура запуститсяпри наступлении определенного события: нажатие кнопки, загрузка страницы, уход со страницы и т.д.СинтаксисSub Объект_СобытиепрограммаEnd SubПримерSub Knopka_onclickMsgBox "Меня нажали"End SubКомментариЕсли в HTML-документе существует кнопка (объект сименем knopka), то при нажатии на нее (событиеonclick) сработает программа, которая выведетсообщение "Меня нажали".Полный текст HTML-файла, реализующего приведенный в таблице пример, представлен ниже:<html> <head> <title> События !!! </title> </head><body> <form method="POST" action="http://myself.com/something.asp"><input type="button" value="Нажми меня" name="Knopka"> </form><script language=vbscript>sub knopka_onclickMsgBox "Меня нажали"End Sub--> </script></body> </html>Процедуру обработки события можно называть и произвольным образом, но тогда название этой процедурынеобходимо указать в качестве обработчика события в HTML – тэге элемента.
Пример:<HTML><BODY><SCRIPT LANGUAGE="VBScript">sub info ( )MsgBox "Вы перемещаетесь над гиперссылкой"End Sub</SCRIPT><a href="http://www.microsoft.com" onmouseover="info( )"> Гиперссылка </a></BODY> </HTML> Ляхевич А.Г., 2000 - 2002 годИз приведенных выше примеров можно сделать еще один вывод: основная мощь VBScript – не в самомязыке, а в тех объектах, которыми он может манипулировать. Internet Explorer имеет ряд встроенныхобъектов (окно, документ, гиперссылки, формы и т.д.), каждый из которых имеет свой определенный наборсвойств, методов и событий.
Кратко объектная модель Internet Explorer приведена ниже:рис. Упрощенная объектная модель браузера Internet Explorer.Приведенная на рисунке модель не являеется полной, однако даже из этой модели рассмотрим лишьнекоторые обекты и лишь часть свойств этих объектов. Частично объектная модель будет такжерассмотрена в лекциях по JavaScript.Объект WindowСамый верхний объект в иерархии. При вызове свойств и методов, window указывать не обязательно.Свойстваlocationустанавливает или возвращает URL текущего окна.
Можно загрузить в окно новуюстраницу, указав в теле документа:<SCRIPT LANGUAGE="VBSCRIPT"> location = "новый_url_адрес" </SCRIPT> или<SCRIPT LANGUAGE="VBSCRIPT"> window . location = "новый_url_адрес" </SCRIPT>Переход произойдет только после того, как будут обработаны все тэги <SCRIPT> настранице. Если в каком-то другом месте, вне функции (процедуры), также будет иметьсястрочка location = "url_адрес", то сработает последняя из строчек.
Однако если URL-адресбыл задан не статически в тексте скрипта, а введен пользователем с клавиатуры (см. методPrompt), то объект location сработает немедленно.statusустанавливает или возвращает текст, находящийся в строке состояния Internet Explorer.Пример: <SCRIPT LANGUAGE="VBSCRIPT"> status = "Приветик !" </SCRIPT>* В дальнейшем, для упрощения записи, в примерах не будут указываться тэги <SCRIPT></SCRIPT>, хотя в реальном HTML-документе они, безусловно, необходимы.defaultStatusустанавливает или возвращает текст, отображаемый по умолчанию в строке состоянияInternet Explorer. Например, URL текущего окна в строке состояния Internet Explorer можновывести следующим образом: self.defaultStatus=locationselfвозвращает текущий объект Window (ссылка на самого себя).
Пример: см. выше.nameвозвращает имя текущего окна, если таковое определено. Пример: status=window.namescreenLeftвозвращает координату X окна, относительно левого края экрана. Пример: status=screenLeftscreenTopвозвращает координату Y окна, относительно верхнего края экрана.Пример: status = screenTopscreen . width возвращает ширину окна. Пример: status = screen . widthscreen .height возвращает высоту окна. Пример: status = screen . heightsreen.возвращает установленное в компьютере разрешение экрана по оси X.availWidthПример: status = sreen . availWidthsreen.возвращает установленное в компьютере разрешение экрана по оси Y.availHeightПример: status = sreen .
availHeightopenerвозвращает окно, из которого открыто текущее окно.parentдля страницы с фреймами, возвращает окно, находящееся на один уровень вложенностивверх, т.е. уровень, между тэгами <FRAMESET> которого содержится фрейм данного окна.tордля страницы с фреймами, возвращает окно самого верхнего уровня вложенности. Ляхевич А.Г., 2000 - 2002 годМетодыalertconfirmpromptopenclosesetTimeoutclearTimeoutnavigateprintmoveTomoveByresizeToresizeByscrollToscrollByshowModalDialogотображает простое окно с предупреждением и кнопкой ОК.
Пример: alert ("Приветик")Комментарий: можно использовать и MsgBox "Приветик", но alert – это метод объектаwindow, а MsgBox – команда VBScriptотображает окно сообщения, содержащее кнопки OK и Cancel. Пример:otvet=confirm("Ну и что нажмем ?")if otvet=true then alert ("Вы нажали OK")предлагает пользователю ввести информацию. Аналогичен функции inputBox () в VisualBasic. Пример:otvet=prompt("Введите ФИО")alert ("Вы ввели " + otvet)создает новое окно Internet Explorer и возвращает ссылку на него.
Вот так создается "пустое"окно без меню, кнопок, полосы прокрутки, неизменяемое в размерах, которое, за исключением значка, ничем не напоминает Internet Explorer:set okno1=window.open("http://www.somewhere.com/file.htm", "imya", "height=100,width=100")Здесь imya – это имя окна, используемое в программах внутри этого окна (имя должно бытьобязательно латинскими буквами). Для ссылок на окно извне необходимо использоватьидентификатор okno1, созданный при открытии окна.
Вот так можно закрыть окно:okno1.closeПолный синтаксис метода приведен ниже:set идентификатор = window.open("URL-адрес", "имя окна", "параметры", заместить) , гдезаместить – принимает значения true (возврат через кнопку "назад" к открывшей страниценевозможен, т.к. в истории посещений адрес исходной страницы замещается наадрес новой страницы) или false.параметры – строка параметров через запятую, заключенная в кавычки. Например:set okno1=window.open("file.htm", null, "height=100,width=100, copyhistory=yes, directories=no,location=no, menubar=no, resizable=no, scrollbars=no, status=no, toolbar=yes, fullscreen=no", true)Здесь:height – высота окна, width – ширина окна, copyhistory – переносить в окно "историю посещений" (кнопки "вперед" и "назад"), directories – панель ссылок "Microsoft" и др., location – полеввода адреса, menubar – панель меню, resizable – размер окна можно изменять, scrollbars –полосы прокрутки, status – строка состояния, toolbar – панель кнопок, fullscreen –полноэкранный режим.закрывает окно.
Пример: window.close ( )устанавливает таймер для срабатывания процедуры через определенное время и возвращаетидентификатор таймера. Например, если необходимо запускать процедуру с именем info ( )каждые 60 секунд, то соответствующий документ будет иметь вид:<HTML><BODY> <SCRIPT LANGUAGE="VBSCRIPT">sub info( )alert("Напоминаем каждую минуту")x=setTimeout("info()",60000)' время указывается в милисекундахend subinfo ( )' первый запуск info ( ) – при загрузке документа</SCRIPT>При помощи таймера чаще всего реализуется анимация (см. лекции по JavaScript).сбрасывает таймер с заданным идентификатором.
Например: clearTimeout(x)загружает в объект window заданный URL. Например, чтобы запросить у пользователя новыйURL, а затем перейти по нему, можно воспользоваться кодом, приведенным ниже:x=prompt("Введите новый URL-адрес")navigate(x)Примечание: замечания по срабатыванию те же, что и для Location.печать содержимого окна.
Пример: window.print( )перемещает окно в координаты X,Y. Пример: y=window.moveTo (100,100)смещает координаты окна на величину X,Y. Пример: y=window.moveBy (10,10)устанавливает ширину и высоту. Пример: y=window.resizeTo (800,600)изменяет ширину и высоту окна на величину X,Y. Пример: y=window.resizeBy (10,10)прокрутить окно до координат X,Y. Пример: y=window.scrollTo (100,100)прокрутить окно на величину X,Y. Пример: y=window.scrollBy (100,100)отображает диалоговое окно пользователя, созданное на основании html-страницы.Подробнее см.