DVKuklin.ru

Учебник по программированию.

Создание сайтов. Первые шаги.

 

 

Учебник по программированию. Первые шаги. Язык программирования PascalABC.NET.
Предыдущий параграф Назад в содержание

§10. Знакомство с JavaScript.

Общая информация.

Что такое JavaScript? JavaScript – язык программирования, который используется при создании html документов и позволяет им реагировать на действия пользователя, т.е. делает документ динамическим.

Как и в любом другом языке программирования, программа на JavaScript представляет собой обычный текст. Отличием является то, что в других языках для того, что бы программа заработала, её необходимо откомпилировать. Программа на JavaScript компиляции не требует. Такую программу выполняет браузер, в котором просматривается интернет страница.

Сама программа на JavaScript должна находиться в HTML документе и должна быть заключена в тег script (открывающий и закрывающий). Браузер при отображении элементов HTML документа, встретив данный тег, начинает выполнять год программы. Выполнив его, браузер продолжает отображение последующих элементов.

Первая программа.

Изучение любого языка начинается с первой программы, которая выводит, как правило, «Hello Word!». Данный учебник не будет исключением, выведем с помощью языка JavaScript сообщение «Привет всем!». Создайте html документ со следующим содержанием:

<script> alert('Привет всем!') </script>

После открытия такого документа в браузере вы увидите следующее:

Первая программа.

Разберём, что мы написали. Данный HTML документ содержит открывающий и закрывающий тэги , в которых заключена программа, написанная на на JavaScript. Программа состоит из одной строки, в которой вызывается функция alert, параметром которой является строка «Привет всем!». Эта функция выводит в отдельном окошечке сообщение, которое передано ей в качестве параметра.

Примечание: в Javascript необходимо следить за регистром букв. Если в html без разницы, какой буквой мы укажем имя тэга большой или маленькой, то в JavaScript слова alert и Alert считаются разными. Поэтому будьте внимательны, функция alert пишется с маленькой буквы.


Примечание для тех, кто не имеет опыт программирования: функция – это отдельный код, который можно запустить с помощью одного слова. В данном примере это слово alert. Это слово, в свою очередь, называется именем функции. Сам отдельный код называется подпрограммой. Вместо слова «запустить», как правило, используется слово «вызвать». Т.е. правильней будет сказать: функция – это подпрограмма, которую можно вызвать, написав её имя. Параметр – это некоторая информация, которая передаётся подпрограмме. Параметр в языке JavaScript передаётся в круглых скобках, которые ставятся после имени функции. Одиночные кавычки в предыдущем примере нужны для того, что бы было понятно, что передаётся строка, а не имя переменной.

Теперь проверим тот факт, что браузер, встретив код JavaScript, выполняет его, а затем продолжает отображать оставшиеся элементы. Составим следующий html документ:

<p>Первый абзац.</p> <script> alert('Привет всем') </script> <p>Второй абзац.</p> После загрузки его браузером мы увидим следующее:

Вначале появляется «Привет всем!».

После нажатия на кнопку «OK» сообщение исчезнет и появится второй абзац:

Затем выводится второй абзац.

Как видите, пока не закончила своё выполнение функция Alert второй абзац браузер не отобразил.

Реакция на действие пользователя.

При каком либо действии пользователя, будь то щелчок мыши, или её движение, так же многое, многое другое, «внутри компьютера» возникает строго определённое событие. Например, при нажатии пользователем левой кнопки мыши возникает событие, которое называется – onclick. Для того, что бы браузер каким либо образом отреагировал на это событие, необходимо написать программу, которая будет запускаться при его возникновении. Такая программа называется обработчиком события.

Как это делается в JavaScript? Во-первых, в тэг того элемента, при нажатии на который нам нужно отреагировать, необходимо вставить атрибут с таким же названием, как называется событие. Этому атрибуту необходимо присвоить значение, которое является именем той функции, которая будет вызвана при нажатии на элемент. Пример:

<body> <span onclick = "alert('Привет всем!')" style = " border:solid, black, 3px; background:yellow;"> Нажми меня!</span> </body>
Пример реакции на событие.

Таким образом, в данном примере функция alert('Привет всем!') является обработчиком события onclick.

Помимо функции alert мы можем вызвать и свою собственную функцию. Её мы должны описать в теге script, который может находиться по тексту как до элемента, так и после. Разница заключается в очерёдности загрузки. Если script будет описан ниже, то пока он не загрузится реакции на нажатие элемента не будет.

Далее пример описания нашей собственной функции:

function MyFunction() { alert('Привет первый раз!'); alert('Привет второй раз!');}

Для описания функции необходимо написать слово function, затем необходимо написать её имя. Имя выбирается произвольно исходя из её назначения. После имени ставятся круглые скобки, в которых указываются параметры, если они не нужны, то скобки всё равно ставятся. Далее ставятся фигурные скобки, в которых описывается сам код. В данном примере вызывается два раза функция alert. После каждого вызова ставится точка с запятой.

Далее пример использования нашей функции:

<body> <script> function MyFunction() { alert('Привет первый раз!'); alert('Привет второй раз!');} </script> <span onclick = "MyFunction()" style = " border:solid, black, 3px; background:yellow;"> Нажми меня!</span> </body>
Пример использования нашей функции.

Изменение свойств css с помощью JavaScript.

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

span_1.style.color = 'green';

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

<body> <script> function MyFunction() { span_1.style.color = 'red'; alert('Привет первый раз!'); alert('Привет второй раз!');} </script> <span id = "span_1" onclick = "MyFunction()" style = " border:solid, black, 3px; background:yellow;"> Нажми меня!</span> </body>
Пример изменения свойств с помощью JavaScript.

Примечание: было сказано, что после слова styleа, после точки пишется название свойства. Это не совсем точно, т.к. названия свойств в css и в JavaScript в некоторых случаях отличаются. Для того, что бы сформировать название свойства в JavaScript, необходимо придерживаться следующим правилам:

  • во-первых, названия свойств пишутся маленькими буквами. Даже первый символ тоже должен быть маленьким. Исключением является случай описанный в следующем правиле.
  • во-вторых, если в css в названии свойства есть дефис, то он пропускается, а следующая за ним буква становится большой. Например: в css – border-color, в JavaScript – borderColor.

Пример кнопок скрывающей и показывающей текст.

Далее приведём пример, в котором при нажатии на кнопки можно скрыть и показать текст:

<body> <script> function CloseText() { text.style.display = 'none'; span_OpenText.style.display = 'inline';} function OpenText() { text.style.display = 'inline'; span_OpenText.style.display = 'none';} </script> <span id = "span_OpenText" onclick = "OpenText()" style = " border:solid black 3px; padding:3px; background-color:#BDB9B0; cursor:pointer; display:none;"> Показать текст. </span> <div id = "text"> Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. <br><br> <span onclick = "CloseText()" style = " border:solid black 3px; padding:3px; background-color:#BDB9B0; cursor:pointer;">Скрыть текст. </div> </body>
Текст виден.

После нажатия на кнопку:

Текст скрыт.

Примечание: если вы наберёте текст документа и просмотрите его в браузере, то вы должны будете увидеть, что при наведении мыши на кнопку курсор из стрелочки превращается в руку. За это отвечает свойство cursor.

Пример получился достаточно объёмным, однако в нём нет ничего того, чего вы не знаете (если конечно дочитали учебник до этого месте без купюр). Внимательно изучите его. Думаю, в нём должно быть вам всё понятно.

События «Наведение курсора мыши на элемент» и «Уход курсора мыши с элемента».

Существует ещё два события, которыми вы сможете уже сейчас пользоваться. Это onmouseover (возникает при наведении курсора мыши на элемент) и onmouseout (возникает при уходе курсора с элемента). Для примера усовершенствуем предыдущий пример так, что при наведении курсора мыши на кнопку её цвет будет меняться, символизируя, что она стала активной. Соответственно, при уходе курсора с кнопки цвет будет возвращён:

<body> <script> function CloseText() { text.style.display = 'none'; span_OpenText.style.display = 'inline';} function OpenText() { text.style.display = 'inline'; span_OpenText.style.display = 'none';} function fmousemove_span_OpenText() { span_OpenText.style.backgroundColor = '#363974';} function fmouseout_span_OpenText() { span_OpenText.style.backgroundColor = '#BDB9B0';} function fmousemove_span_CloseText() { span_CloseText.style.backgroundColor = '#363974';} function fmouseout_span_CloseText() { span_CloseText.style.backgroundColor = '#BDB9B0';} </script> <span id = "span_OpenText" onclick = "OpenText()" onmouseover = "fmousemove_span_OpenText()" onmouseout = "fmouseout_span_OpenText()" style = " border:solid black 3px; padding:3px; background-color:#BDB9B0; cursor:pointer; display:none;"> Показать текст. </span> <div id = "text"> Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. <br><br> <span id = "span_CloseText" onclick = "CloseText()" onmouseover = "fmousemove_span_CloseText()" onmouseout = "fmouseout_span_CloseText()" style = " border:solid black 3px; padding:3px; background-color:#BDB9B0; cursor:pointer;">Скрыть текст. </div> </body>
События onmouseover и onmouseout.

Примечание: всё, что добавлено нового в документ, выделено жирным шрифтом.

Код JavaScript в отдельном файле.

Так же как и таблица стилей код JavaScript может находиться в отдельном файле. Для этого в тэг script необходимо включить атрибут src, которому необходимо присвоить адрес файла с расширением js. Этот файл должен быть текстовым и должен содержать код JavaScript.

Пример:

MyJavascript.js ------------------------------------------ alert('Функция из файла MyJavascript.js'); __________________________________________ Script в отдельном файле.html ----------------------------------------- <body> <script src = "MyJavascript.js"> </body>
Код JavaScript в отдельном файле.

Как видно из примера закрывающий тэг в таком случае необязателен.

Примечание: при использовании атрибута src код, который заключён в тэг script, выполняться не будет. Пример:

MyJavascript.js ----------------------------------------- alert('Функция из файла MyJavascript.js'); _________________________________________ Script в отдельном файле.html ----------------------------------------- <body> <script src = "MyJavascript.js"> alert('Функция из документа'); </script> </body>
При использовании src код заключённый в тэг script не выполняется.

Задачи.

1. Сделайте так, что бы при загрузке вашего сайта выходило сообщение о том, что это за сайт и кто автор.

2. С помощью JavaScript сделайте так, что бы навигационные ссылки подсвечивались при наведении на них курсора мыши. Создать отдельный файл с функциями JavaScript.


Предыдущий параграф Назад в содержание