Главная
Простейшие операторы
Операторы условия
Циклы
Массивы
Массивы II
Строки
Функции I
Функции II
|
Что такое функция
Функция представляет собой очень мощный инструмент для организации программы.
Если до сих пор программа начинала у нас работать сразу после открытия
документа, то сегодня мы разберемся, как этого избежать.
Для начала разберемся, как происходит вызов функции. В следующей программе мы
всего лишь выведем на экран сообщение с помощью функции:
-
<script>
function alerting() {
alert("Выводим сообщение");
}
alerting();
</script>
С помощью строки function alerting() мы создали функцию alerting(). А с помощью
строки alerting() мы вызвали эту самую функцию. Блок function functionname() { }
может находится в любой части программы. Проку от той функции, которую создали
мы, немного, поэтому мы разберем сначала события.
События
С помощью событий можно более удобно управлять программой. Рассмотрим некоторые
события:
onload - это событие происходит, как только веб-страница полностью загружается.
В следующей программе JScript сообщит пользователю, когда закончится загрузка
страницы:
-
<script>
function ura() {
alert("Веб-страница загрузилась на 100%");
}
</script>
<body onLoad="ura()">
</body>
onunload - это событие произойдет, когда пользователь закроет веб-страницу:
-
<script>
function goodbye() {
alert("Пока! Надеюсь, еще увидемся!");
}
</script>
<body onunload="goodbye()">
</body>
onstop - это событие произойдет, если пользователь остановит загрузку
веб-страницы: нажмет кнопку "Стоп", перейдет по ссылке или закроет страницу до
полной ее загрузки:
-
<script>
function ey() {
alert("Эй! Страница еще загрузиться не успела!");
}
</script>
<body onstop="ey()">
</body>
onMouseOver - происходит при наведении указателя на определенный объект:
-
<script>
function haha() {
alert("Ты только что подвел или подвела мышку к ЗАПРЕТНОЙ ЗОНЕ!!!");
}
</script>
<body>
<p onmouseover="haha()">Это - <b>ЗАПРЕТНАЯ ЗОНА</b>! Не подводи сюда мышку!</p>
</body>
onMouseOut - наоборот, происходит, когда мышку уводят от какого-то элемента:
-
<script>
function mistake() {
alert("Ты куда мышку дел?!");
}
</script>
<body onmouseout="mistake()">
</body>
onMouseMove() - происходит при перемещении мышки. Наиболее частый пример -
отображение в строке состояния текущих координат курсора:
-
<script>
function coord() {
window.status="x="+event.x+"; y="+event.y;
}
</script>
<body>
<p onmousemove="coord()" onmouseout="window.status=''">Узнайте текущие
координаты курсора</p>
</body>
onClick - происходит при нажатии главной кнопки мыши (левой для правши, правой
для левши):
-
<script>
function clicks() {
alert("Вы думали это ссылка?")
}
</script>
<a href="#" onclick="clicks()">Ссылка</a>
onDblClick - происходит при двойном щелчке:
<script>
function clicks() {
alert("Зачем в Интернете щелкать два раза?!");
}
</script>
<body ondblclick="clicks()">
</body>
onContextMenu - происходит при вызове контекстного меню. Один из самых
ненадежных способов защиты информации - отключение контекстного меню:
-
<script>
function context() {
event.returnValue=false;
}
</script>
<body oncontextmenu="context()">
</body>
onHelp - происходит при вызове меню помощи. Удобно применять для организации
своего Help'a:
-
<script>
function helper() {
alert('На нашем сайте все просто - ходите по ссылкам и не задумывайтесь');
event.returnValue=false;
}
</script>
<body onhelp="helper()">
</body>
Оставшиеся события говорят сами за себя: onMouseUp; onKeyPress; onKeyDown;
onKeyUp.
Упражнение 33
Создать программу, которая позволит перевести температуру по Цельсию в
температуру по Фаренгейту и наоборот. Вспомним, что 1°C = (1°F−32)/1,8; 1°F =
1,8°C+32. Создадим две функции и HTML-код:
-
<html>
<head>
<script>
function CtoF() {
c=prompt("Введите температуру", "");
c=Number(c);
f=1.8*c+32;
alert(c+"\xB0C="+f+"\xB0F");
}
function FtoC() {
f=prompt("Введите температуру", "");
f=Number(f);
c=(f-32)/1.8;
alert(f+"\xB0F="+c+"\xB0C");
}
</script>
</head>
<body>
<button onclick="CtoF()">От °C к °F</button>
<button onclick="FtoC()">От °F к °C</button>
</body>
</html>
Важно также сохранять результаты функции. Для этого есть специальный оператор
return(). В его скобках указываются переменные, которые следует передать всей
программе. Что это означает: допустим, в ходе выполнения какой-то функции
появилось значение для переменной x=5. Если потом в программе (не в этой
функции) попытаться повысить значение x на 1: x+=1, то возникнет ошибка, ибо
программа не знает никакую переменную x.
Другое дело, если в функции написать: x=5; return(x) - тогда у всей программы
появится новая переменная - x.
[В начало]
|