Поиск по сайту
PHP Поиск
- На нашем портале лучшие бесплатные игры для мальчиков.
JavaScript
JavaScript - предназначен для написания сценариев для активных HTML-страниц. Язык JavaScript не имеет никакого отношения к языку Java. Java разработан фирмой SUN. JavaScript – фирмой Netscape Communication Corporation. Первоначальное название – LiveScript. После завоевания языком Java всемирной известности LiveScript из коммерческих соображений переименовали в JavaScript.
JavaScript не предназначен для создания автономных приложений. Программа на JavaScript встраивается непосредственно в исходный текст HTML-документа и интерпретируется брaузером по мере загрузки этого документа. С помощью JavaScript можно динамически изменять текст загружаемого HTML-документа и реагировать на события, связанные с действиями посетителя или изменениями состоятия документа или окна.
Важная особенность JavaScript – объектная ориентированность. Программисту доступны многочисленные объекты, такие, как документы, гиперссылки, формы, фреймы и т.д. Объекты характеризуются описательной информацией (свойствами) и возможными действиями (методами).
Тег <SCRIPT>
Сценарий JavaScript встраивается в HTML-документ с помощью тега <SCRIPT>.
Пример
<HTML>
<HEAD>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
</HEAD>
<BODY lang=RU>
<H1>Начнем?</H1>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write("Привет!");
//-->
</SCRIPT>
</BODY>
</HTML>
РЕЗУЛЬТАТ:
Начнем?
Атрибут LANGUAGE указывает язык программирования. Если мы имеем дело с HTML версии 4.0, то вместо LANGUAGE рекомендуется использовать атрибут TYPE в следующем виде:
<SCRIPT TYPE="text/javascript">
Текст сценария оформляется как комментарий, чтобы не было проблем у посетителей, брaузеры которых не понимают JavaScript. Кроме того к символам, завершающим комментарий добавляется еще два символа “/”, т.к. некоторые браузеры, например, Netscape Navigator рассматривает строку, состоящую только из символов “-->”, как ошибочную.
В первом примере для объекта с именем document вызывается метод write. В качестве параметра ему передается текстовая строка “Привет!”. Строка закрывается символом “;”, которым отделяются друг от друга все операторы JavaScript.
Объект document – это HTML-документ, загруженный в окно брaузера. Метод write записывает в тело HTML-документа строку “Привет!”. При этом документ будет выгдядеть так, как будто эта строка находится в нем на месте сценария.
Имейте в виду, что JavaScript различает строчные и прописные буквы. Кроме того символ дефиса в JavaScript распознается как минус, т.е. если фон объекта в HTML-документе задается через свойство background-color, то в JavaScript - через backgroundColor.
Пример
<img src="ba.gif" border=0 OnMouseOver="this.style.backgroundColor='red';" OnMouseOut="this.style.backgroundColor='white';">
Здесь цвет фона объекта будет меняться с белого на красный при наведении на объект мыши:
Переменные в JavaScript
Имя переменной не должно совпадать с зарезервированными ключевыми словами JavaScript.
Все переменные в JavaScript объявляются с помощью ключевого слова var. При объявлении тип переменной не указывается. Этот тип присваивается переменной только тогда, когда ей присваивается какое-либо значение.
Числа в строки интерпретатор JavaScript преобразует автоматически. Для преобразования строк в числа используют специальные функции parseInt и parseFloat.
Пример
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</HEAD>
<BODY lang=RU>
<H1>Пример преобразования типов</H1>
<SCRIPT LANGUAGE="JavaScript">
<!--
var Buf="";
Buf=100+" - число сто<br>";
Buf+=(parseInt("50")+50)+" -число сто<br>";
document.write(Buf);
//-->
</SCRIPT>
</BODY>
</HTML>
РЕЗУЛЬТАТ:
Пример преобразования типов
Примеры использования простейших преобразований типов:
var myVar = "3.14159",
str = ""+ myVar,// в string
int = ~~myVar, // в integer
float = 1*myVar, // во float
bool = !!myVar, // в boolean - все непустые строки и числа кроме 0 будут true
array = [myVar]; // в array
Конвертирование в даты (new Date(myVar)) и регулярные выражения (new RegExp(myVar)) нужно делать
с использованием конструкторов. Для создания регулярных выражений используйте структуру:
/регулярное_выражение/флаги.
Операторы языка JavaScript
Операторы JavaScript напоминают общеизвестные операторы языка С++.
Унарные операторы
| - | Изменение знака на противоположный |
| ! | Дополнение. Используется для реверсирования значения логических переменных |
| ++ | Увеличение значения переменной. Может применяться и как префикс, и как суффикс |
| -- | Уменьшение значения переменной. Может применяться и как префикс, и как суффикс |
Бинарные операторы
| - | Вычитание |
| + | Сложение |
| * | Умножение |
| / | Деление |
| % | Остаток от деления |
Операторы для работы с отдельными битами
| & | И |
| | | ИЛИ |
| ^ | ИСКЛЮЧАЮЩЕЕ ИЛИ |
| ~ | НЕ |
Операторы сдвига
| >> | Сдвиг вправо |
| << | Сдвиг влево |
| >>> | Сдвиг вправо с заполнением освобождаемых разрядов нулями |
Операторы отношения
| > | Больше |
| >= | Больше или равно |
| < | Меньше |
| <= | Меньше или равно |
| == | Равно |
| != | Не равно |
В условных операторах также применяются логические операторы: || (ИЛИ) и && (И).
Оператор присваивания и его комбинации
Допускается комбинирование оператора присваивания с другими, как и в языке С.
| = | Присваивание |
| += | Сложение или слияние строк (n=n+7; аналог. n+=7;) |
| –= | Вычитание (n=n-7; аналог. n-=7;) |
| *= | Умножение |
| /= | Деление |
| >>= | Сдвиг вправо |
| <<= | Сдвиг влево |
| >>>= | Сдвиг вправо с заполнением освобождаемых разрядов нулями |
| &= | И |
| |= | ИЛИ |
| ^= | ИСКЛЮЧАЮЩЕЕ ИЛИ |
Условные операторы
В языке JavaScript два условных оператора: if-else и ?:.
Пример оператора IF-ELSE
if(Vol<2)
{
b=true;
ss="w002.htm";
}
else if(Vol>100)
{
b=true;
ss="w100.htm";
}
Пример оператора ?:
b = (Vol<2 || Vol>100) ? true:false;
Операторы цикла
В языке JavaScript три оператора цикла: for, for-in, while.
Пример оператора FOR
for(i=0; i<n; i++)
{
text+=" ";
}
Пример оператора FOR-IN
var sprops="<H2>Свойства объекта window</H2>" for(props in window) sprops+="<b>"+props+"</b><xmp>"+":"+window[props].substr(0,90)+"</xmp><br>"; document.write(sprops);
РЕЗУЛЬТАТ:
Пример оператора WHILE
i=0;
while(i<n)
{
text+=" ";
i++;
}
Кроме этих операторов в организации цикла могут участвовать еще два оператора: break (выход из цикла) и continue (переход на следующий шаг).
Прочие операторы
| . | Доступ к полю объекта. ( document.write(Buf); ) |
| [ ] | Индексирование массива ( dim[i] ) |
| ( ) | Изменение порядка вычислений или передача параметров функции |
| , | Разделение выражений в многократном вычислении |
Пример оператора “запятая”
for(i=0; i<n; i++, j++)
Встроенные функции JavaScript
Функции JavaScript
Все функции JavaScript рекомендуется помещать в контейнер <HEAD>...</HEAD>. Тем самым вы обеспечите их гарантированную доступность при обработке HTML-документа.
Пример
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<script language="Javascript">
<!--
function ItR(a)
{
var o = eval(a);
o.style.backgroundColor="red";
}
function ItW(a)
{
var o = eval(a);
o.style.backgroundColor="white";
}
//-->
</script>
</head>
<body lang=RU>
<H2>Изменение
фона при наведении </H2>
<img id=Ba src="ba.gif" border=0 OnMouseOver="ItR(Ba)" OnMouseOut="ItW(Ba)">
<img id=Ba src="be.gif" border=0 OnMouseOver="ItR(Be)" OnMouseOut="ItW(Be)">
</body>
</html>
РЕЗУЛЬТАТ:
Изменение фона при наведении
Объекты JavaScript
Язык JavaScript является объектно-ориентированным. Объекты JavaScript представляют собой наборы свойств и методов. Можно сказать, что свойства объектов - это данные, связанные с объектом, а методы - функции для обработки данных объекта.
В языке JavaScript имеется три вида объектов: встроенные объекты, объекты брaузера и объекты, создаваемые программистом.
JavaScript поддерживает следующий набор встроенных объектов: Array, Boolean, Date, Global, Function, Math, Number, String.
Встроенный объект Array. Массивы в JavaScript
Массив в JavaScript является экземпляром встроенного объекта Array. Нумерация элементов в массиве начинается с нуля. Создать массив можно тремя способами:
var a1 = new Array();
var a2 = new Array(3);
var a3 = new Array('раз','два','три');
a1 - массив, в котором нет ни одного элемента.a2 - массив из трех элементов с неопределенным (undefined) значением.
a3 - массив, заданный списком своих элементов.
Число элементов в массиве можно изменить, просто задав значение соответствующего элемента:
a3[5]='шесть';
Типы данных элементов массива в JavaScript могут быть различными:
a3[3]=4; a3[4]=5; a3[7]=false;
Разумеется, необходимо предусмотреть корректную работу с массивом, содержащим элементы с разными типами данных.
Для создания многомерного массива каждому элементу массива нужно присвоить другой массив:
var myArray = new Array(2);
for (i=0; i<3; i++){myArray[i] = new Array(2);}
Так можно создать массив, состоящий из трех строк и трех столбцов.
Свойство объекта Array
- length. Число элементов массива.
Методы объекта Array
- concat( ). Слияние двух массивов. Через параметр передается имя
второго массива: c=a.concat(b);
Здесь элементы массива b добавляются к элементам массива a. - join( ). Слияние элементов массива в строку. Через параметр передается разделитель элементов. По умолчанию разделителем служит запятая. s=c.join('; ');
- reverse( ). Меняет порядок элементов массива на обратный.
- slice( ). Выделяет часть из массива. В качестве параметров передаются значения начального и конечного индексов, между которыми происходит выделение. При этом элемент массива с конечным индексом в результат не войдет. Следует помнить, что индексы отсчитываются от нуля.
Встроенный объект Date
С помощью методов встроенного объекта Date можно выполнять различные действия с часами компьютера. Для использования большинства методов объекта Date необходимо создать экземпляр этого объекта:
var today = new Date();
Методы объекта Date
- getYear. Возвращает год:
var nYear = today.getYear(); - getMonth. Возвращает номер месяца:
var nMonth = today.getMonth(); Имейте в виду, что январь - это 0, февраль - 1 и т.д. - getDate.Возвращает значение календарной даты в диапазоне от 1 до 31:
var nDate = today.getDate(); - getDay. Возвращает номер дня недели (для воскресенья - 0,
для понедельника - 1 и т.д.):
var nDay = today.getDay(); - getHours. Возвращает количество часов, прошедших после полуночи:
var nHours = today.getHours(); - getMinutes. Возвращает количество минут, прошедших с начала часа:
var nMinutes = today.getMinutes(); - getSeconds. Возвращает количество секунд, прошедших с начала минуты:
var nSeconds = today.getSeconds(); - getTime. Возвращает количество миллисекунд, прошедших с
00 часов 00 минут 1 января 1970 года:
var nMillisec = today.getTime(); - getTimeZoneOffset.
Возвращает смещение локального времени относительно времени по Гринвичу в
миллисекундах:
var nOffsetMillisec = today.getTimeZoneOffset(); - parse. Возвращает количество миллисекунд, прошедших с
00 часов 00 минут 1 января 1970 года по время, указанное в параметре функции.
Для вызова этого метода можно просто сослаться на имя класса Date,
а создавать объект класса Date не надо:
var nMS = Date.parse(prm);
Параметр prm может принимать значения: локальные дата и время ("21 Apr 2001 18:00:00"); дата и время по Гринвичу ("21 Apr 2001 14:00:00 GMT"); дата и время по Гринвичу cо смещением ("21 Apr 2001 18:00:00 GMT+0400"). - UTC. Преобразовывает дату, заданную параметрами метода,
в количество миллисекунд, прошедших с 00 часов 00 минут 1 января 1970 года.
Для вызова этого метода, так же как и метода parse
можно просто сослаться на имя класса Date:
var nMSec = Date.UTC(year, month, date, hours, min, sec, ms);
Имейте в виду, что январь - это 0, февраль - 1 и т.д. - setYear. Устанавливает год в объекте класса Date:
today.setYear(nYear); - setMonth. Устанавливает номер месяца:
today.setMonth(nMonth); - setDate. Устанавливает значение календарной даты в диапазоне от 1 до 31:
today.setDate(nDate); - setDay. Устанавливает номер дня недели (для воскресенья - 0, для понедельника - 1 и
т.д.):
today.setDay(nDay); - setHours. Устанавливает количество часов, прошедших после полуночи:
today.setHours(nHours); - setMinutes. Устанавливает количество минут, прошедших с начала часа:
today.setMinutes(nMinutes); - setSeconds. Устанавливает количество секунд, прошедших с начала минуты:
today.setSeconds(nSeconds); - setTime. Устанавливает дату, соответствующую количеству миллисекунд, прошедших с 00
часов 00 минут 1 января 1970 года:
var nMillisec = today.setTime(); - toGMTString. Преобразует дату в строку, записанную в стандартном формате времени по
Гринвичу:
"Sat, 21 Apr 2001 14:00:00 GMT" - toLocaleString. Преобразует дату в строку, записанную в стандартном формате локального времени:
"04/16/2001 18:00:00".
Объекты брaузера
Объекты брaузера являются тем интерфейсом, с помощью которого сценарий JavaScript взаимодействует с посетителем и HTML-документом, загруженным в окно брaузера, а также с самим брaузером. Обращаясь к свойствам и методам этих объектов, можно выполнять различные операции над окном брaузера, загруженным в это окно HTML-документом, а также над отдельными объектами, размещенными в HTML-документе.
Практически в любом сценарии JavaScript необходимы такие объекты, как
окно - window и документ - document.
Свойства объекта window
- name. Имя окна, указанное при его открытии методом open, а также в атрибуте TARGET тега <A> или в атрибуте NAME тега <FORM>.
- self, window. Синонимы имени окна. Относятся к текущему окну.
- top. Синоним имени окна. Относится к окну верхнего уровня.
- parent. Синоним имени окна. Относится к окну, содержащему набор фреймов.
- frames. Массив всех фреймов данного окна.
- length. Количество фреймов в родительском окне.
- status. Текущее сообщение, отображаемое в строке состояния окна брaузера.
Методы объекта window
- alert. Отображение диалоговой панели Alert с сообщением и кнопкой OK. Через параметр передается сообщение, отображаемое в диалоговой панели. После вызова этого метода выполнение сценария задерживается до тех пор, пока посетитель не нажмет кнопку OK, расположенную в диалоговой панели.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
</head>
<body lang=RU>
<script language="JavaScript">
<!--
alert("Рад видеть Вас на моем сайте! Пошли дальше?");
//-->
</script>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
- confirm. Отображение диалоговой панели Confirm с кнопками OK и Отмена. В зависимости от того, какая кнопка будет нажата, метод возвращает соответственно значение true или false.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
</head>
<body lang=RU>
<script language="JavaScript">
<!--
if(confirm("Рад видеть Вас на моем сайте! Пошли
дальше?"))
{document.write("Пошли!");}
else
{document.write("Не хочешь - не надо... ");}
//-->
</script>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
- prompt. Отображение диалоговой панели Prompt с полем ввода и кнопками OK и Отмена. В зависимости от того, какая кнопка будет нажата, метод возвращает соответственно введенную строку или значение null. Метод имеет два параметра. Первый - сообщение над полем ввода. Второй (необязательный) - начальное значение строки ввода.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
</head>
<body lang=RU>
<script language="JavaScript">
<!--
var yourName=prompt("Как Вас зовут?", "Маша"))
if(yourName=="Маша")
{document.write("Угадал!");}
else
{document.write("Не угадал. Вас зовут " + yourName);}
//-->
</script>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
- open. Открытие окна. Метод имеет три параметра. Первый задает URL HTML-документа, предназначенного для загрузки в новое окно. Второй определяет имя окна для использования в атрибуте TARGET тега <A> или в атрибуте NAME тега <FORM>. Третий (необязательный) задает в виде текстовой строки параметры, определяющие внешний вид открываемого окна.
| toolbar | Отображение стандартной инструментальной линейки [=yes|no] | [=1|0] |
| location | Отображение поля ввода адреса документа [=yes|no] | [=1|0] |
| status | Отображение строки состояния [=yes|no] | [=1|0] |
| menubar | Отображение линейки меню [=yes|no] | [=1|0] |
| scrollbars | Отображение полос прокрутки [=yes|no] | [=1|0] |
| resizable | Изменение размеров нового окна [=yes|no] | [=1|0] |
| width | Ширина окна в пикселах |
| height | Высота окна в пикселах |
| fullscreen | Полноэкранный режим |
| copyhistory | Сохранение истории загрузки документов в данное окно [=yes|no] | [=1|0] |
| directories | Наличие в данном окне кнопок групп новостей [=yes|no] | [=1|0] |
Пример
<html>
<head>
<meta
http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body
lang=RU>
<script
language="JavaScript">
<!--
var
newWindow=open("ann.htm","","toolbar=no,menubar=no,width=300,height=200")
//-->
</script>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
- close. Закрытие созданного или основного окна:
newWindow.close();
Текущее окно брaузера можно закрыть одним из следующих способов:
window.close(); self.close(); - setTimeout. Установка таймера. Применяется для ограничения времени ввода пароля, создания бегущих строк и всевозможных анимационных эффектов. Метод имеет два параметра. Первый задает выражение JavaScript, которое запускается по прошествии времени, указанного вторым параметром в миллисекундах. Заданное выражение запускается один раз.
Пример
<html>
<head>
<meta
http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body lang=RU>
<H3>Через
2 секунды Иоганн Себастьян Бах сменит Людвига ван Бетховена.</H3>
<img id=B_B src="be.gif">
<script language="JavaScript">
<!--
function change()
{document.getElementById("B_B").src="ba.gif";}
setTimeout("change()", 2000);
//-->
</script>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
- clearTimeout. Сброс таймера. Для останова таймера метод setTimeout
нужно вызвать с возвратом идентификатора, т.е.
idTimer=setTimeout("change()", 2000);
а затем этот идентификатор передать методу clearTimeout в качестве параметра:
clearTimeout(idTimer);
- blur( ). При вызове метода окно теряет фокус.
- focus( ). При вызове метода окно получает фокус.
- MoveTo(x,y). Перемещает окно в точку с координатами.
- MoveBy(x,y). Перемещает окно на x пикселей по горизонтали вправо и на y пикселей вниз.
- ResizeTo(x,y). Изменяет размер окна на указанные.
- ResizeBy(x,y). Увеличивает или уменьшает размер окна на заданное количество пикселей.
- print( ). Печать документа.(не работает в IE 4)
- scroll(x,y), ScrollTo(x,y). Прокручивает окно так, что точка с кординатами x,y становится левой верхней точкой окна.
- ScrollBy(x,y). Прокручивает окно на x,y пикселей.
- stop( ). Прекращает загрузку документа в окно браузера.
Свойства объекта document
- URL. Полный URL документа.
- location. Полный URL документа.
- referrer. URL вызывающего документа.
- title. Заголовок документа, определенный тегом <TITLE>.
- bgColor. Цвет фона документа.
- fgColor. Цвет текста.
- linkColor. Цвет cсылок.
- alinkColor. Цвет выбранных cсылок.
- vlinkColor. Цвет посещенных cсылок.
- links. Массив всех cсылок в документе.
- anchors. Массив локальных меток. Применяется для организации ссылок внутри документа.
- applets. Массив аплетов Java.
- forms. Массив форм в виде объектов.
- images. Массив растровых изображений.
- embeds. Массив объектов plug-in.
- lastModified. Дата последнего изменения документа.
- cookie. Значение cookie для текущего документа.
Пример
<html> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1251"> <SCRIPT LANGUAGE="JavaScript"> <!-- document.bgColor="FFFF00"; document.fgColor="800080"; document.linkColor="000000"; document.alinkColor="FF0000"; document.vlinkColor="0000FF"; //--> </SCRIPT> </head> <body lang=RU> <H2>Изменение цвета фона, текста и ссылок</H2> <a href="be.htm"><img src="be.gif" align="bottom">Кто это?</a><br> <a href="ba.htm"><img src="ba.gif" align="bottom">Кто это?</a> </body> </html>
ПОСМОТРИ РЕЗУЛЬТАТ
Объект document может содержать в себе другие объекты, доступные как свойства:
- anchor. Локальная метка, определенная тегом <A>.
- form. Форма, определенная тегом <FORM>.
- history. Список посещенных URL.
- link. Текст или изображение, играющие роль гипертекстовой ссылки, созданной тегом <A>, в котором дополнительно заданы обработчики событий onClick и onMouseOver.
Методы объекта document
- сlear. Удаление содержимого документа из окна просмотра.
- write. Запись в документ произвольной HTML-конструкции.
- writeln. Аналогичен write, но с добавлением символа перевода строки в конец строки.
- open. Открытие выходного потока для записи в HTML-документ данных типа MIME при помощи методов write и writeln.
- close. Закрытие потока данных, открытого методом open. В окне будут отображены все изменения содержимого документа, сделанные сценарием после открытия потока.
Ссылки в документе
Для каждой ссылки, размещенной в HTML-документе, создается отдельный объект. Все такие объекты находятся в объекте document как элементы массива links. Анализируя эти элементы, сценарий JavaScript может определить свойства каждой ссылки в HTML-документе:
- length. Количество ссылок в HTML-документе, т.е. количество элементов в массиве links.
- hash. Имя локальной ссылки, если она определена в URL.
- host. Имя узла и порт, указанные в URL.
- hostname. Имя узла и доменное имя узла сети. Если доменное имя недоступно, вместо него указывается адрес IP.
- href. Полный URL.
- pathname. Путь к объекту, указанный в URL.
- port. Номер порта, использумого для передачи данных с сервером, указанным в ссылке.
- protocol. Строка названия протокола передачи данных (включающая символ "двоеточие"), указанного в ссылке.
- search. Строка запроса, указанная в URL после символа "?".
- target. Имя окна, куда будет загружен документ при выполнении ссылки. Это может быть имя существующего окна фрейма, определенного тегом <FRAMESET>, или одно из зарезервированных имен - _top, _parent, _self, _blank.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
</head>
<body lang=RU>
<P><A HREF="http://kdg.HtmlWeb.ru/"
TARGET="_top">Моя страница</A>
<P><A HREF="http://www.dstu.edu.ru/">Здесь учился</A>
<P><A HREF="http://www.tnk-ug.ru/">Здесь работаю</A>
<HR>
<H1>Свойства ссылок</H1>
<SCRIPT LANGUAGE="JavaScript">
<!--
// Цикл по всем ссылкам
for(i=0; i<document.links.length; i++)
{
// Разделительная линия
document.write("<HR>");
// Текст ссылки, выделенный жирным шрифтом
var Txt=document.links[i] + "<br>";
document.write(Txt.bold());
// Все свойства ссылки
document.write("host: ".italics() + document.links[i].host +
"<br>");
document.write("hostname: ".italics() +
document.links[i].hostname + "<br>");
document.write("href: ".italics() + document.links[i].href +
"<br>");
document.write("pathname: ".italics() +
document.links[i].pathname + "<br>");
document.write("port: ".italics() + document.links[i].port +
"<br>");
document.write("search: ".italics() + document.links[i].search
+ "<br>");
document.write("target: ".italics() + document.links[i].target
+ "<br>");
}
//-->
</SCRIPT>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
Работа с формами
Сейчас мы поговорим о различных приемах работы сценариев JavaScript с HTML-формами.
Если в HTML-документе определена форма, то она доступна сценарию JavaScript как объект, входящий в объект document с именем, заданным атрибутом NAME тега FORM.
Свойства форм
Форма имеет два набора свойств, состав одного из которых фиксированный, а состав другого зависит от того, какие элементы определены в форме.
Свойства первого набора
- action. Значение атрибута ACTION тега FORM.
- encoding. Значение атрибута ENCTYPE тега FORM.
- method. Значение атрибута METHOD тега FORM.
- target. Значение атрибута TARGET тега FORM.
- elements. Массив всех элементов формы.
- length. Размер массива elements.
Большинство свойств первого набора просто отражает значение соответствующих атрибутов тега FORM. Что же касается массива elements, то в нем находятся объекты, соответствующие элементам, определенным в форме. Эти объекты образуют второй набор свойств формы. Адресоваться к этим объектам можно как к элементам массива elements, причем первому элементу формы будет соответствовать элемент с индексом 0, второму - с индексом 1 и т.д. Однако удобнее обращаться к элементам формы по их именам, заданным атрибутом NAME.
Элементы форм
Кнопки (BUTTON, RESET, SUBMIT)
Свойства
- name. Имя объекта.
- value. Надпись на кнопке.
Метод
- click( ). Вызов этого метода тождественен щелчку мышкой по кнопке.
Пример
<html>
<head>
<meta http-equiv=Content-Type content="text/html;
charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript">
<!--
function btnClick()
{
var Txt1 = "";
var Txt2 = "";
Txt1 = document.Test.bt.value;
Txt2 = document.Test.bt.name;
document.write("<HR>");
document.write("Вы нажали
кнопку: " + Txt1.bold() +
" с именем: "
+ Txt2.bold());
document.write("<HR>");
}
//-->
</SCRIPT>
</head>
<body lang=RU>
<H1>Нажатие кнопки</H1>
<FORM NAME="Test">
<INPUT
TYPE="button" NAME="bt" VALUE="Щелкни здесь!"
onClick="btnClick();">
</FORM>
</body>
</html>
РЕЗУЛЬТАТ:
Нажатие кнопки
Флажок (CHECKBOX)
Свойства
- name. Имя объекта.
- value. Надпись на кнопке.
- checked. Состояние флажка: true - флажок установлен, false - флажок не установлен.
- defaultChecked. Отражает наличие атрибута CHECKED: true - есть, false - нет.
Метод
- click( ). Вызов этого метода меняет состояние флажка.
Пример
<html> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1251"> </head> <body lang=RU> <H1>Метод click флажка</H1> <FORM NAME="Test"> Флажок <INPUT TYPE="checkbox" NAME="ch"> <BR>Состояние флажка можно изменить и этой кнопкой <INPUT TYPE="button" VALUE="Смена состояния" onClick="document.Test.ch.click();"> </FORM> </body> </html>
РЕЗУЛЬТАТ:
Метод click флажка
Переключатель (RADIO)
Свойства
- name. Имя объекта.
- value. Надпись на кнопке.
- length. Количество переключателей в группе.
- checked. Состояние переключателя: true - переключатель включен, false - выключен.
- defaultChecked. Отражает наличие атрибута CHECKED: true - есть, false - нет.
Метод
- click( ). Вызов этого метода включает переключатель.
Так как группа переключателей имеет одно имя NAME, то к переключателям надо адресоваться как к элементам массива.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript">
<!--
function btnClick()
{
if(document.Test.Sex[0].checked)
{
document.Test.Sex[1].click();
}
else
{
document.Test.Sex[0].click();
}
}
//-->
</SCRIPT>
</head>
<body lang=RU>
<H1>Метод
click группы переключателей</H1>
<FORM NAME="Test">
<INPUT TYPE="RADIO"
NAME="Sex" VALUE ="Man" CHECKED>Мужской
<INPUT TYPE="RADIO"
NAME="Sex" VALUE ="Woman">Женский
<BR>Состояние
переключателей можно изменить и этой кнопкой
<INPUT TYPE="button" VALUE="Смена состояния" onClick="btnClick();">
</FORM>
</body>
</html>
РЕЗУЛЬТАТ:
Метод click группы переключателей
Список (SELECT)
Свойства
- name. Имя объекта.
- selectedIndex. Номер выбранного элемента или первого среди выбранных (если указан атрибут MULTIPLE).
- length. Количество элементов (строк) в списке.
- options. Массив элементов списка, заданных тегами OPTION.
Каждый элемент массива options является объектом со следующими свойствами:
- value. Значение атрибута VALUE.
- text. Текст, указанный после тега OPTION.
- index. Индекс элемента списка.
- selected. Присвоив этому свойству значение true, можно выбрать данный элемент.
- defaultSelected. Отражает наличие атрибута SELECTED: true - есть, false - нет.
Методы
- focus( ). Передает списку фокус ввода.
- blur( ). Отбирает у списка фокус ввода.
Пример
<html>
<head>
<meta http-equiv=Content-Type content="text/html;
charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript">
<!--
function btnClick()
{
sI=Test.Item.selectedIndex;
Txt="";
Txt="Предложено
"+Test.Item.length+" напитков"+
"\nВыбран "+Test.Item.options[sI].text+
" (value= "+Test.Item.options[sI].value+
", index= "+Test.Item.options[sI].index+")";
if(Test.Item.options[sI].defaultSelected)
{Txt+="\nЭтот напиток выбирается по
умолчанию"}
alert(Txt);
}
//-->
</SCRIPT>
</head>
<body lang=RU>
<H1>Работа с готовым списком</H1>
<FORM NAME="Test">
<SELECT NAME="Item" SIZE=5>
<OPTION VALUE="tea" SELECTED>Чай
<OPTION VALUE ="coffee">Кофе
<OPTION VALUE ="milk">Молоко
<OPTION VALUE ="cocoa">Какао
<OPTION VALUE ="juice">Сок
</SELECT>
<INPUT TYPE="button" VALUE="Пусть кофе"
onClick="Test.Item.options[1].selected=true;">
<INPUT TYPE="button" VALUE="Посмотрим"
onClick="btnClick();">
</FORM>
</body>
</html>
РЕЗУЛЬТАТ:
Работа с готовым списком
Кроме работы с готовыми списками JavaScript может заполнять список динамически. Для записи нового элемента списка используется конструктор Option c четырьмя параметрами, первый из которых задает текст, отображаемый в списке, второй - значение элемента списка, соответствующее значению атрибута VALUE, третий соответствует свойству defaultSelected, четвертый - свойству selected.
Пример
<html>
<head>
<meta http-equiv=Content-Type content="text/html;
charset=windows-1251">
</head>
<body lang=RU>
<H1>Динамическое заполнение списка</H1>
<FORM NAME="Sel">
<!-- Пустой список ссылок-->
<SELECT NAME="ListOfLinks">
</SELECT>
<!-- Кнопка активизации выбранной ссылки-->
<INPUT TYPE="button" VALUE="Переход"
onClick="window.location.href =
document.links[Sel.ListOfLinks.selectedIndex];">
</FORM>
<A HREF="http://tnk-ug.ru/kdg/"></A>
<A HREF="http://www.dstu.edu.ru/"></A>
<A HREF="http://www.tnk-ug.ru/"></A>
<A HREF="http://www.dmm.ru/"></A>
<SCRIPT LANGUAGE="JavaScript">
<!--
// Цикл по всем ссылкам
for(i=0; i<document.links.length; i++)
{
// Создание i-элемента списка и запись в него ссылки
document.Sel.ListOfLinks.options[i] = new Option(document.links[i], i, false,
false);
}
// Выделение первого элемента в списке
document.Sel.ListOfLinks.selectedIndex = 0;
//-->
</SCRIPT>
</body>
</html>
РЕЗУЛЬТАТ:
Динамическое заполнение списка
Поле ввода (TEXT)
Свойства
- name. Имя объекта.
- defaultValue. Начальное содержимое поля.
- value. Текущее содержимое поля.
Методы
- focus( ). Передает полю фокус ввода.
- blur( ). Отбирает у поля фокус ввода.
- select( ). Выделяет содержимое поля.
Пример
<html>
<head>
<meta http-equiv=Content-Type content="text/html;
charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript">
<!--
function Complete()
{
Elem="Фамилия: " + Sel.Family.value +
"\nИмя: " + Sel.Name.value +
"\nВозраст: " + Sel.Age.value +
"\nТелефон: " + Sel.Phone.value;
alert(Elem);
}
function CheckAge(age)
{
if(age<18)
return "18";
else
return
age;
}
//-->
</SCRIPT>
</head>
<body lang=RU>
<H1>Заполните анкету</H1>
<FORM NAME="Sel">
<!-- Анкета -->
<TABLE>
<TR><TD><B>Фамилия:<B></TD><TD><INPUT NAME="Family" SIZE=20
onBlur="this.value=this.value.toUpperCase()"></TD></TR>
<TR><TD><B>Имя:<B></TD><TD><INPUT
NAME="Name" SIZE=20
onBlur="this.value=this.value.toUpperCase()"></TD></TR>
<TR><TD><B>Возраст:<B></TD><TD><INPUT NAME="Age" SIZE=3
VALUE="18"
onBlur="this.value=CheckAge(this.value)"
onFocus="this.select()"></TD></TR>
<TR><TD><B>Телефон:<B></TD><TD><INPUT NAME="Phone"
SIZE=10></TD></TR>
</TABLE>
<!-- Кнопки готовности и сброса -->
<INPUT TYPE="button" VALUE="Готово" onClick="Complete();">
<INPUT TYPE="reset" VALUE="Сброс">
</FORM>
</body>
</html>
РЕЗУЛЬТАТ:
Заполните анкету
Обратите внимание на то, что символы фамилии и имени при потере фокуса соответствующими полями преобразуются в прописные. Для этого используется метод toUpperCase, определенный во встроенном классе строк.
Текстовая область (TEXTAREA)
Свойства
- name. Имя объекта.
- defaultValue. Начальное содержимое области.
- value. Текущее содержимое области.
Методы
- focus( ). Передает области фокус ввода.
- blur( ). Отбирает у области фокус ввода.
- select( ). Выделяет содержимое области.
Пример
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript">
<!--
OK="Тетя Эльза чувствует себя хорошо.\n
Юстас.";
Problem="Тетя Эльза заболела.\n
Юстас.";
function getDate()
{
today=new Date();
return
today.toLocaleString()+"\n";
}
function CheckRadio(form,value)
{
if(value=="Good")
form.Letter.value=getDate()+OK;
else
form.Letter.value=getDate()+Problem;
}
//-->
</SCRIPT>
</head>
<body lang=RU>
<H1>Отправьте телеграмму</H1>
<FORM NAME="Sel">
<P><INPUT TYPE="radio" NAME="Code" VALUE="Good"
onClick="if(this.checked) CheckRadio(this.form,this.value);">
Явка в норме
<BR><INPUT TYPE="radio" NAME="Code" VALUE="Bad"
onClick="if(this.checked) CheckRadio(this.form,this.value);">
Явка провалена
<P>
<TEXTAREA NAME="Letter" ROWS=3 COLS=35>
</TEXTAREA>
<INPUT TYPE="button" VALUE="Готово" onClick="alert(Sel.Letter.value);">
<INPUT TYPE="reset" VALUE="Сброс">
</FORM>
</body>
</html>
РЕЗУЛЬТАТ:
Отправьте телеграмму
Поле ввода пароля (PASSWORD)
Свойства
- name. Имя объекта.
- defaultValue. Начальное содержимое поля.
- value. Текущее содержимое поля.
Методы
- focus( ). Передает полю фокус ввода.
- blur( ). Отбирает у поля фокус ввода.
- select( ). Выделяет содержимое поля.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript">
<!--
function Complete()
{
if(Sel.Pwd.value==Sel.Pwd1.value)
alert("Вас зарегистрировали\nID="+Sel.Id.value+"\nPassword="+Sel.Pwd.value);
else
alert("Ошибка при вводе
пароля\nПопробуйте еще раз");
}
//-->
</SCRIPT>
</head>
<body lang=RU>
<H1>Регистрация</H1>
<FORM NAME="Sel">
<TABLE>
<TR><TD><B>Идентификатор:<B></TD><TD><INPUT NAME="Id" SIZE=20
onBlur="this.value=this.value.toUpperCase()"></TD></TR>
<TR><TD><B>Пароль:<B></TD>
<TD><INPUT TYPE="password"
NAME="Pwd" SIZE=20
onFocus="this.select();"></TD></TR>
<TR><TD><B>Проверка пароля:<B></TD>
<TD><INPUT TYPE="password"
NAME="Pwd1" SIZE=20
onFocus="this.select();"></TD></TR>
</TABLE>
<INPUT TYPE="button" VALUE="Готово" onClick="Complete();">
<INPUT TYPE="reset" VALUE="Сброс">
</FORM>
</body>
</html>
РЕЗУЛЬТАТ:
Регистрация
Cookie
Cookie - это свойство HTML-документа. Представляет собой набор строковых параметров, каждый из которых имеет имя и значение. Сценарий JavaScript может создавать cookie для HTML-документа, определяя в нем произвольное количество параметров и задавая для них произвольные значения. После создания такой набор параметров становится принадлежностью данного конкретного HTML-документа и может быть проанализирован, изменен или удален сценарием JavaScript. Подробное описание технологии cookie.
Создание cookie
В сценарии JavaScript cookie создается с помощью свойства document.cookie. Пары имя-значение не могут содержать пробелов, запятых и точек с запятыми. Поэтому все эти символы должны быть заменены на соответствующие escape-последовательности. JavaScript имеет две функции, обрабатывающие escape-последовательности: escape и unescape.
Пара имя-значение является единственным необходимым параметром при создании cookie. Указание только пары имя-значение создает cookie, который сохраняется только на протяжении текущего сеанса брaузера. При создании cookie можно задать дату его автоматического удаления. В этой паре надо указать имя expires и значение в стандартном формате времени по Гринвичу (GMT). Простейшим способом преобразования в формат GMT является использование одного из методов встроенного класса Date: toGMTString. Кроме этого, создавая cookie, можно указать также путь (path), домен (domain) и информацию безопасности. Извлечь эту информацию нельзя.
Удаление cookie
Самый простой способ удаления cookie - установить для него такое время автоматического удаления, которое уже прошло.
Практическое применение cookie
- Индивидуальная настройки параметров Web-страниц.
- Хранение товара, выбранного посетителем виртуального магазина. Можно выбрать товары на разных страницах, а потом сделать общий заказ.
- Хранение текущего состояния сетевой игры.
Пример
<html>
<head>
<meta http-equiv=Content-Type
content="text/html; charset=windows-1251">
</head>
<body lang=RU>
<script language="JavaScript">
<!--
function parseCookie() {
// Разделение cookie.
var cookieList = document.cookie.split("; ");
// Массив для каждого cookie в cookieList.
var cookieArray = new Array();
for (var i = 0; i < cookieList.length; i++) {
// Разделение пар имя-значение.
var name = cookieList[i].split("=");
// Декодирование и добавление в cookie-массив.
cookieArray[unescape(name[0])] = unescape(name[1]);
}
return cookieArray;
}
function setCookie(visits) {
/* Счетчик числа посещений и
определение срока хранения в 1 год. */
var expireDate = new Date();
// Установка даты автоматического удаления.
expireDate.setYear(expireDate.getYear() + 1);
// Сохранение числа посещений.
document.cookie = "Visits=" + visits +
"; expires=" + expireDate.toGMTString() + ";";
}
if ("" == document.cookie) {
// Инициализация cookie.
setCookie(1);
document.write("<H3>Поздравляю Вас с первым посещением моего сайта.</H3>");
}
else {
// Анализ cookie.
var cookies = parseCookie();
// Вывод приветствия, числа посещений и увеличение числа посещений на 1.
document.write("<H3>Рад снова видеть Вас на моем сайте! Число Ваших посещений - " +
cookies.Visits++ + " !</H3>");
// Обновление cookie.
setCookie(cookies.Visits);
}
//-->
</script>
</body>
</html>
ПОСМОТРИ РЕЗУЛЬТАТ
Другой пример использования Cookie
Данные cookie позволяют собирать определенную статистическую информацию о посетителе, поэтому некоторые могут настраивать брaузеры на ограничение или полное отключение возможности работы с cookie.
java script примеры
Читать дальше: Формы в JavaScript
Популярное:
- Генератор Sitemap
- Отправить SMS
- Генератор Robots.txt
- Полезные ссылки
- Чей IP-адрес?
- Чей домен?
- Где телефон?
- Примеры Ajax
- Примеры PHP
- Примеры Javascript
- Примеры HTML, CSS
- Справочник PHP
- GIF-аниматор
- Сайт в ТОП
Содержание:
- HTML
- JavaScript
- PHP + MySQL
- XML + XSLT
- AJAX
- Графика CorelDRAW
- SEO
- Сервисы
- Разное
- Шаблоны сайтов
Новое за неделю
Сейчас на сайте: 345