Основы VBScript

VBScript - одна из разновидностей VB, позволяющая писать скрипты (программы) для интернет страниц. Из броузеров VBScript поддерживает только Internet Explorer. Но осмелюсь предположить, что большинство людей пользуются именно этим броузером. Для того, чтобы работать с VBScript нужно хотя бы немного знать язык разметки html. Могу посоветовать отличную книгу "Настольная книга Web-мастера: эффективное применение HTML, CSS и JavaScript".

Примеры, размещенные в данной статье являются полностью автономными т.е. Вы можете создать файл с расширением html, вставить туда код примера и запустить с помощью Internet Explorer. Функции, написанные на VBScript нужно включать после тега Script, где указывается на чем написан скрипт (т.е. VBScript или JavaScript), а содержимое скрипта лучше указывать в комментарии языка html т.е. между <!-- и -->. Например:

<html>
<head>
</head>
<body>
<INPUT TYPE="Button" VALUE="Кнопка 1" ONCLICK=ButtonDown("1")> 
<INPUT TYPE="Button" VALUE="Кнопка 2" ONCLICK=ButtonDown("2")> 
</body>
<SCRIPT TYPE="text/vbscript"><!--
function ButtonDown(n)
msgbox "Вы нажали на кнопку "+n
end function
--></SCRIPT>
Для доступа к конкретному элементу можно использовать идентификатор элемента ID, который можно присвоить любому элементу. Для элементов формы (т.е. для кнопок, текстовых полей и т.д.) можно использовать атрибут NAME:
<html>
<head>
</head>
<body>
<P ID="P1" ONMOUSEOVER=P1_MouseOver() ONMOUSEOUT=P1_MouseOut()>текст</P>
<INPUT TYPE="Button" ID="Button1" VALUE="Кнопка 1" ONMOUSEOVER=Button1_MouseOver() ONMOUSEOUT=Button1_MouseOut()> 
<br>
<INPUT TYPE="Button" NAME="Button2" VALUE="Кнопка 2" ONMOUSEOVER=Button2_MouseOver() ONMOUSEOUT=Button2_MouseOut()> 
</body>
<SCRIPT TYPE="text/vbscript"><!--
' При нахождении мышки над одним из трех элементов 
' этой страницы делаем шрифт этого элемента зеленым	
function P1_MouseOver()
P1.style.color=vbgreen
end function

function P1_MouseOut()
P1.style.color=vbblack
end function

function Button1_MouseOver()
Button1.style.color=vbgreen
end function

function Button1_MouseOut()
Button1.style.color=vbblack
end function

function Button2_MouseOver()
Button2.style.color=vbgreen
end function

function Button2_MouseOut()
Button2.style.color=vbblack
end function
--></SCRIPT>
Теперь рассмотрим пример страницы, где по нажатию кнопки выводится сумма чисел двух текстовых окошек:
<html>
<head>
</head>
<body>
<INPUT TYPE="Text" NAME="Text1" VALUE="12"> 
<INPUT TYPE="Text" NAME="Text2" VALUE="15"> 
<INPUT TYPE="Button" NAME="Button1" VALUE="Сумма" ONCLICK=Sum()> 
</body>
<SCRIPT TYPE="text/vbscript"><!--
function Sum()
a=cint(Text1.value)
b=cint(Text2.value)
msgbox a+b
end function
--></SCRIPT>
Как Вы видите вместо функции Val для перевода из строки в число я использовал функцию cint. Дело в том что функции Val как и функции Str в VBScript нет.

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

<html>
<head>
<style type="text/css">
A:link {color:blue}
A:hover {color:red}
</style>
</head>
<body ONCLICK=MenuOff()>
<A href="" ONMOUSEOVER=MenuOn()>меню</A>
<DIV ID="Menu" STYLE="position:absolute; top:20; left:50; visibility='hidden'; background-color:green">
<A href="">Пункт меню 1</A>
<br>
<A href="">Пункт меню 2</A>
<br>
<A href="">Пункт меню 3</A>
<br>
<A href="">Пункт меню 4</A>
</DIV>
</body>
<SCRIPT TYPE="text/vbscript"><!--
function MenuOn()
Menu.style.visibility="visible"
end function
function MenuOff()
Menu.style.visibility="hidden"
end function
--></SCRIPT>
В VBScript имеется возможность отключить обработку какого-нибудь события. Например, когда Вы вставляете ссылку, то при ее нажатии она обязательно должна загрузить страницу, указанную в параметре href. Если в этом параметре ничего не указать, то загрузится содержимое текущей папки. Но в некоторых случаях ссылку удобно использовать в других целях, поэтому обработку события ссылки нужно отключить. Например:
<html>
<head>
</head>
<body>
<a href="" onclick=link_click()>ссылка</a>
</body>
<SCRIPT TYPE="text/vbscript"><!--
function link_click
' Отключаем обработку события
window.event.returnValue=false
window.event.cancelBubble=true
' Выполняем какое либо действие
msgbox "Вы щелкнули по ссылке"
end function
--></SCRIPT>
Также в VBScript Вы можете узнать координаты мышки:
<html>
<head>
</head>
<body>
Координаты мыши относительно экрана
<br>
<input type="text" name="Text1">
<br>
Координаты мыши относительно документа
<br>
<input type="text" name="Text2">
<br>
Координаты мыши относительно окна
<br>
<input type="text" name="Text3">
<table border=1 width=200 height=200><tr><td onmousemove=t_mousemove()>
Проведите мышью по этому окну
</td></tr></table>
</body>
<SCRIPT TYPE="text/vbscript"><!--
function t_mousemove
Text1.value="X="+cstr(window.event.screenX)+"; Y="+cstr(window.event.screenY)
Text2.value="X="+cstr(window.event.clientX)+"; Y="+cstr(window.event.clientY)
Text3.value="X="+cstr(window.event.offsetX)+"; Y="+cstr(window.event.offsetY)
end function
--></SCRIPT>
Вы наверно часто видели в интернете картинные галереи, где нажатием кнопок (следующая, предыдущая) Вы переходите к страничке с следующей фотографией. Проблема в том, что ради просмотра одной фотографии (бывает часто небольшой) грузится вся страница с картинками, ссылками и т.д. При этом страница может занимать довольно большой объем. Гораздо лучше было бы, если бы загружалась только фотография, а все остальное оставалось на своих местах. Здесь Вы увидете пример такой страницы.
Hosted by uCoz