javascript Базовый. Занятие 05

47
Темы лекции: Регулярные выражения. События. Практическое задание: Регулярные выражения. События. Тренер: Игорь Шкулипа, к.т.н. JavaScript. Базовый курс Занятие 5

Upload: igor-shkulipa

Post on 12-Apr-2017

137 views

Category:

Education


2 download

TRANSCRIPT

Page 1: JavaScript Базовый. Занятие 05

Темы лекции: Регулярные выражения. События.

Практическое задание: Регулярные выражения. События.

Тренер: Игорь Шкулипа, к.т.н.

JavaScript. Базовый курс

Занятие 5

Page 2: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 2

События (events)

Page 3: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 3

DHTML

DHTML (динамический HTML) – это набор средств, которые позволяютсоздавать более интерактивные Web-страницы без увеличениязагрузки сервера. Другими словами, определенные действияпосетителя ведут к изменениям внешнего вида и содержания страницыбез обращения к серверу.

DHTML построен на объектной модели документа (Document Object Model,DOM), которая расширяет традиционный статический HTML-документ.DOM обеспечивает динамический доступ к содержимому документа,его структуре и стилям. В DOM каждый элемент Web-страницыявляется объектом, который можно изменять. DOM не определяетновых тэгов и атрибутов, а просто обеспечивает возможностьпрограммного управления всеми тэгами, атрибутами и каскаднымилистами стилей (CSS).

Page 4: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 4

События DHTML

На WEB-страницах можно обеспечить реакцию на определенные действияпосетителя или изменения состояния документа или окна, которыевызывают определенные события.

Посетитель генерирует события при передвижении мыши, нажатиикнопок мыши и клавиатуры. Изменения состояния документагенерируют события при загрузке документа, изображений илиобъектов, при появлении ошибки на странице или переходе фокуса отодного элемента к другому.

Модель событий DHTML связана с определенной иерархией HTML-контейнеров и основана на всплывании событий и действии поумолчанию.

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

Page 5: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 5

Обработчики событий

Обработчики событий - это функции, которые могут быть привязаны кэлементам HTML страниц.

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

Примеры активирующих действий JavaScript:

• Щелчок мыши (событие onclick);• Нажатие клавиши (onkeypress);• Отправление формы (onsubmit);• Наведение курсора мыши на элемент (onmouseover) или

выведение курсора мыши за пределы границ элемента(onmouseout);

• Полная загрузка страницы или картинки (onload);• Изменение содержимого элемента, например содержимого

текстового поля формы (onchange).

Page 6: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 6

Связывание событий

Установление связи между определенным событием и сценариемназывается связыванием событий. События можно связать с помощьюспециальных атрибутов любого элемента или с помощью тэгаSCRIPT.

Связывание событий с атрибутами удобно, но требует расширения языкаHTML каждый раз при изобретении нового события. А так как HTMLразвивается медленно, данный подход используется только длянебольшого набора встроенных событий. Как атрибуты любогоэлемента в DHTML представлены события мыши и клавиатуры.

Page 7: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 7

События мыши

• OnMouseOver. Перемещение указателя мыши на элемент.• OnMouseOut. Перемещение указателя мыши за пределы элемента.• OnMouseDown. Нажатие любой кнопки мыши. Внутри обработчика event.button

указывает, какая кнопка нажата: 1 = левая, 2 = правая, 4 = средняя.• OnMouseUp. Отпускание любой кнопки мыши.• OnMouseMove. Перемещение указателя мыши. Внутри обработчика event.x и

event.y - текущие координаты курсора на экране.• OnClick. Щелчок левой кнопкой мыши на элементе или нажатие <Enter> при

каком-то элементе в фокусе.• OnDblClick. Двойной щелчок левой кнопкой мыши на элементе.• OnDragStart. Запуск операции перетаскивания. Цель – запретить операцию

перетаскивания путем возвращения значения false.• OnSelectStart. Запуск операции выделения элемента. Цель – запретить

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

• OnSelectStart всплывающее, поэтому можно перехватить его и вернутьзначение false. Это лишит посетителя возможности выделять текст на странице.

• OnSelect. Выделение элемента. Следует за OnSelectStart и возникает многораз по мере того, как посетитель расширяет или сужает выделение. СобытиеOnSelect не всплывает. Оно возникает лишь в том разделе документа, гдепроисходит выделение.

Page 8: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 8

События клавиатуры

• OnKeyPress. Нажатие и отпускание клавиши. Событие возникаетмного раз, если клавиша удерживается.

• OnKeyDown. Нажатие клавиши. Событие возникает один раз, дажеесли клавиша продолжает удерживаться.

• OnKeyUp. Отпускание клавиши.

Событие прокручивания

• OnScroll. Использование полосы прокрутки или прокручиваниеэлемента неявно посредством другого действия Не может отменитьпрокручивания, так как возникает после завершения прокручивания.Не всплывает.

События фокуса

• OnFocus. Возникает, когда элемент активизируется после щелчка понему мышью или с помощью клавиатуры. Фокус могут получить толькоэлементы пользовательского ввода и тело документа, а не элементысодержания документа.

• OnBlur. Возникает, когда элемент теряет фокус. Используется дляконтроля корректности ввода.

Page 9: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 9

События формы

• OnChange. Возникает при любых изменениях в форме. Для текстового поля этоввод или удаление. Для списка – выбор нового элемента. Так же, как и OnBlurиспользуется для контроля корректности ввода.

• OnSubmit. Возникает перед отправкой содержимого формы на сервер. Основноеназначение – проверка корректности введенных данных. Отмена передачиданных происходит при возвращении значения false.

• OnReset. Возникает после щелчка на кнопке Reset. Назначение – выводпредупреждения о сбросе.

События документа

• OnLoad. Возникает после считывания, но до отображения страницы.Используется для отображения заставки, проверки права доступа и другиходнократных действий при инициализации страницы.

• OnUnload. Возникает при выгрузке страницы. Используется для освобождениякаких-либо ресурсов и вывода дополнительных сообщений.

• OnAbort. Возникает при срыве загрузки графического объекта.• OnError. Возникает лишь при неудачной загрузке графического элемента или

всей WEB-страницы.

Событие помощи

• OnHelp. Запрос файла справки с использованием клавиши <F1>. Не возникаетпри выборе пункта Help из меню Help.

Page 10: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 10

Объект event

Объект event служит для получения информации о событии. Свойства объектаevent:

• srcElement. Элемент, который первым сгенерировал событие. Имя тэгаэтого элемента можно определить с помощью свойства tagName.

• cancelBubble. Используется для прекращения всплывания события вверхпо иерархии контейнеров. По умолчанию равно false и событие всплывает.Установка значения true останавливает всплывание текущего события.

• returnValue. Используется для отмены действия по умолчанию. Для этогонужно установить значение false. Ключевое слово return в JavaScriptобновляет значение event.returnValue при возвращении управлениябраузеру.

• type. Определение события. Имя события возвращается в нижнем регистребез префикса on.

• button. Состояния кнопок мыши во время события.• clientX, clientY. Координаты указателя мыши относительно клиентской

области окна.• offsetX, offsetY. Координаты указателя мыши относительно контекста

воспроизведения.• screenX, screenY. Координаты указателя мыши относительно экрана.• altKey. Состояние клавиши «Alt»(true/false).• ctrlKey. Состояние клавиши «Ctrl»(true/false).• shiftKey. Состояние клавиши «Shift» (true/false).• keyCode. ASCII-код нажатой клавиши.

Page 11: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 11

Состояния кнопок мыши во время события

Свойство event.button принимает следующие значения:

0 Кнопки не нажаты

1 Нажатие левой кнопки

2 Нажатие правой кнопки

3 Нажатие левой и правой кнопок

4 Нажатие средней кнопки

Page 12: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 12

Способы связывания событий с обработчиками

• Через атрибут HTML-тега

• Через свойство объекта

• Решение от Microsoft attachEvent/detachEvent

• Установка по стандарту W3C

Page 13: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 13

Через атрибут HTML-тега

<input id="button1" type="button" value=“Push Me”

onclick="alert('Event Handled!');" />

Такой способ установки обработчиков очень удобен - оннагляден и прост, поэтому часто используется в решении простыхзадач.

У этого способа установки обработчика есть и минусы. Кактолько обработчик начинает занимать больше одной строки -читабельность резко падает.

Page 14: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 14

Через свойство объекта

<input id="button1" type="button" value="Push Me" />

<script type="text/javascript">

document.getElementById('button1').onclick = function () {

alert('Event Handled!')

}

</script>

Такая установка обработчика через свойство - оченьпопулярный и простой способ.

У него есть один недостаток: на элемент можно повеситьтолько один обработчик нужного события.

Page 15: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 15

Решение от Microsoft attachEvent/detachEvent

Методы, предложенные Microsoft, работают только в браузерах InternetExplorer и Opera (она поддерживает метод Microsoft для лучшейсовместимости).

На данный момент, метод attachEvent устарел и не поддерживается.Microsoft рекомендует использовать addEventListener.

<input id="button1" type="button" value="Push Me" />

<script type="text/javascript">

var button = document.getElementById("button1");

var handler = function () {

alert('Event Handled!')

}

button.attachEvent("onclick", handler);

...

button.detachEvent("onclick", handler);

</script>

Page 16: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 16

Установка по стандарту W3CРешение W3C работает во всех современных браузерах, кроме старых версий

Internet Explorer.

<input id="button1" type="button" value="Push Me" />

<script type="text/javascript">

var button = document.getElementById("button1");

var handler = function () {

alert('Event Handled!')

}

button.addEventListener("click", handler, false);

</script>

Третий параметр метода – фаза. Если он установлен в true, то при срабатываниисобытия во вложенном элементе, обработчик будет вызван на фазе "перехвата",а если значение будет false, то - на фазе "всплывания".

При обычной установке обработчика третий параметр всегда должен быть false.

Page 17: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 17

Установка нескольких обработчиков

<input id="button1" type="button" value="Push Me" />

<script type="text/javascript">

var button = document.getElementById("button1");

var handler = function () {

alert('Event Handled!')

}

var handler2 = function () {

alert('Event Handled Again!')

}

button.addEventListener("click", handler, false);

button.addEventListener("click", handler2, false);

</script>

Page 18: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 18

Удаление обработчиков

<script type="text/javascript">

var button = document.getElementById("button1");

var handler = function () {

alert('Event Handled!')

}

var handler2 = function () {

alert('Event Handled Again!')

}

button.addEventListener("click", handler, false);

button.addEventListener("click", handler2, false);

button.removeEventListener("click", handler, false);

</script>

Page 19: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 19

Действия браузера по умолчанию

Многие события влекут за собой действие браузера. Например, клик поссылке инициирует переход на новый URL, нажатие на кнопку«отправить» в форме — посылку ее на сервер, и т.п.

Если логика работы обработчика требует отменить действие браузера —это возможно.

Page 20: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 20

Отмена действия браузера

Первый способ — это воспользоваться объектом события. Для отменыдействия браузера существует стандартный методevent.preventDefault(), а для IE<9 нужно назначить свойствоevent.returnValue = false.

element.onclick = function(event) {

event = event || window.event

if (event.preventDefault) {

event.preventDefault();

} else { // IE<9

event.returnValue = false;

}

}

Page 21: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 21

Отмена действия браузера

Второй способ - если обработчик назначен через on..., то return false изобработчика отменяет действие браузера:

element.onclick = function(event) {

...

return false;

}

Такой способ проще, но не будет работать, если обработчик назначен через addEventListener/attachEvent.

Page 22: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 22

Отмена действия браузера

Третий способ – переопределение некоторых обработчиков событийбраузера.

Page 23: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 23

Динамическое содержание

Содержание HTML-документа можно менять после загрузки страницы.

Свойства динамического содержания:

• innerText. Содержащийся внутри элемента текст без тэгов. Приустановке нового значения все HTML-тэги выводятся как текст.

• innerHTML. Содержащийся внутри элемента текст вместе свнутренними тэгами. При установке нового значения все HTML-тэги интерпретируются браузером.

• outerText. Содержащийся внутри элемента текст без тэгов. Приустановке нового значения меняется весь элемент, включаявнешние тэги.

• outerHTML. Весь элемент, включая внешние тэги. При установкенового значения все HTML-тэги интерпретируются браузером.

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

Page 24: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 24

Пример динамического содержания

<html>

<head>

<meta http-equiv=Content-Type content="text/html; charset=windows-1251">

</head>

<body>

<p onmousedown="this.innerText='<br/>innerText';">innerText</p>

<p onmousedown="this.innerHTML='<br/>innerHTML';">innerHTML</p>

<p onmousedown="this.outerText='<br/>outerText';">outerText</p>

<p onmousedown="this.outerHTML='<br/>outerHTML';">outerHTML</p>

</body>

</html>

Page 25: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 25

Методы Adjacent

Есть еще два метода для вставки содержания:

• insertAdjacentText. Вставка текста.• insertAdjacentHTML. Вставка HTML.

Оба метода Adjacent имеют по два аргумента:

• место вставки и• содержание.

Место вставки определяется ключами:

beforeBeginДо открывающего внешнего тэга элемента

afterBegin После открывающего тэга до содержимого элемента

beforeEndДо закрывающего тэга после содержимого элемента

afterEndПосле закрывающего тэга элемента

<p

onmousedown="insertAdjacentHTML('

beforeBegin','<br/>beforeBegin');

">beforeBegin</p>

<p

onmousedown="insertAdjacentHTML('

afterBegin','<br/>afterBegin');">

afterBegin</p>

<p

onmousedown="insertAdjacentHTML('

beforeEnd','<br/>beforeEnd');">be

foreEnd</p>

<p

onmousedown="insertAdjacentHTML('

afterEnd','<br/>afterEnd');">afte

rEnd</p>

Page 26: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 26

Регулярные выражения

Регулярные выражения - формальный язык поиска и осуществленияманипуляций с подстроками в тексте, основанный на использованииметасимволов. По сути это строка-образец, состоящая из символов иметасимволов и задающая правило поиска.

Пример:

var emailExpression =

“([.\\-_a-z0-9]+)@([a-z0-9][\\-a-z0-9]+\\.)+[a-z]{2,6}";

Ссылка на справочник по языку регулярных выражений Microsofthttp://msdn.microsoft.com/ru-ru/library/az24scfc.aspx

Page 27: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 27

Объект RegExp

Объект типа RegExp, задает регулярное выражение в JavaScript. Крометого, регулярное выражение можно создать двумя путями:

/pattern/флаги

new RegExp("pattern"[, флаги])

• pattern - регулярное выражение для поиска,• флаги - строка из любой комбинации следующих символов:

• g - глобальный поиск• i - регистр неважен• m - многострочный поиск

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

var reg = /ab+c/i

var reg = new RegExp("ab+c", "i")

Page 28: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 28

Проверка результатов

Метод test возвращает true/false, в зависимости от того подходит листрока под регулярное выражение

if ( /\w/.test("строка") ) {

...В строке есть любые словесные (латинские)

символы, включая буквы, цифры и знак

подчеркивания.!...

}

Page 29: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 29

Поиск совпадений

Метод exec возвращает массив и ставит свойства регулярноговыражения. Если совпадений нет, то возвращается null.

var regex= /w/ig;

var result = regex.exec("asd 123");

Page 30: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 30

Поиск совпадений

• Метод search(regexp) - возвращает индекс регулярного выражения встроке, или -1.

• Метод match(regexp) - если в regexp нет флага g, то возвращает тотже результат, что regexp.exec(string). Если в regexp есть флаг g, товозвращает массив со всеми совпадениями.

Page 31: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 31

Замена

Метод replace может заменять вхождения регулярного выражения нетолько на строку, но и на результат выполнения функции.

var newString = str.replace(regexp/substr, newSubStr/function)

• regexp - объект RegExp. Его вхождения будут заменены на значение,которое вернет параметр номер 2

• substr - строка, которая будет заменена на newSubStr.

• newSubStr - строка, которая заменяет подстроку из аргумента номер1.

• function - функция, которая может быть вызвана для генерации новойподстроки (чтобы подставить ее вместо подстроки, полученной изаргумента 1).

Метод replace не меняет строку, на которой вызван, а возвращает новую, измененную строку.

Page 32: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 32

Пример. HTML<!DOCTYPE html> <html> <head>

<title>JavaScript Events and RegExp Example</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet" href="css/site.css" type="text/css" />

<script type="text/javascript" src="js/scripts.js"> </script>

</head>

<body>

<div id="page">

<div id="head">

<div id="logo">

<img src="img/logo.png" height="94" width="100" alt=“logo">

</div>

<div id="title">JavaScript Events and RegExp Example</div>

</div>

<div class="main">

<div class="innermain">

<div id="menu" class="menu">

</div>

<div id="content" class="content">

</div>

</div>

</div>

<div id="foot">

<p onmouseover="this.className = 'pmouseover'"

onmouseout="this.className = 'pmouseout'">Move Closer to Change the Style</p>

</div>

</div>

</body>

</html>

Page 33: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 33

Пример. CSS

.pmouseover {

color:magenta;

font-size:120%;

font-weight:bold;

}

.pmouseout {

color:#cccccc;

font-size:100%;

font-weight:normal;

}

Page 34: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 34

Пример. Меню

<div id="menu" class="menu">

<a href="#" id="mi1" class="menuitem”

onclick="document.getElementById('content').insertAdjacentHTML

('afterBegin','<h1>Hello, DHTML Event!</h1>')">

DHTML Event

</a>

<a href="#" id="mi2" class="menuitem">ON Event</a>

<a href="#" id="mi3" class="menuitem">Attach Event</a>

<a href="#" id="mi4" class="menuitem">Add Event Listener</a>

<a href="#" id="mi5" class="menuitem">Add Text for RegExp</a>

<a href="#" id="mi6" class="menuitem">Find RegExp</a>

<a href="#" id="mi7" class="menuitem">Replace RegExp</a>

</div>

Page 35: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 35

Пример. scripts.js. Текст и шаблон

var emailExpression =

"([.\\-_a-z0-9]+)@([a-z0-9][\\-a-z0-9]+\\.)+[a-z]{2,6}";

var text = "<p>Lorem ipsum dolor sit amet,

<strong>[email protected]</strong> consectetur adipiscing elit. In

posuere, elit ut tristique condimentum, lectus est sodales nibh, sed

adipiscing velit <strong>[email protected]</strong> lectus vel felis.

Praesent id urna ut quam dapibus sollicitudin sit amet et mi. Quisque in

magna nisi, in scelerisque mi <strong>[email protected]</strong>!

Vestibulum suscipit lacinia tempor. Donec euismod massa sit amet tellus

consectetur dapibus. Donec nisl justo, egestas at mattis ut, sagittis eu

ipsum. Aliquam porttitor massa <strong>[email protected]</strong>

in.</p>";

Page 36: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 36

Пример. Обработчики

var onEvent = function () {

document.getElementById("content").insertAdjacentHTML('beforeEnd',

'<h2>Hello, ON Event!</h2>');

}

var attachDetachEvent = function () {

document.getElementById("content").insertAdjacentHTML('beforeEnd',

'<h3>Hello, Attach Event!</h3>');

}

var addListenerEvent = function () {

document.getElementById("content").insertAdjacentHTML('beforeEnd',

'<h4>Hello, Listener Event!</h4>');

}

var addTextEvent = function () {

document.getElementById("content").innerHTML = text;

}

Page 37: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 37

Пример. Поиск совпадений

var findRegExpEvent = function () {

var txt = document.getElementById("content").innerHTML;

var re = new RegExp(emailExpression, "gim");

var matches;

var newText = txt + "<p><ul>";

var myArray;

while ((matches = re.exec(txt)) != null) {

newText += "<li>" + matches[0] + "</li>";

}

newText += "</ul></p>";

document.getElementById("content").innerHTML = newText;

}

Page 38: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 38

Пример. Замена

var findAndReplaceRegExpEvent = function () {

var txt = document.getElementById("content").innerHTML;

var re = new RegExp(emailExpression, "gim");

var newText = txt.replace(re, "$1");

document.getElementById("content").innerHTML = newText;

}

Page 39: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 39

Пример. Отмена действий по-умолчанию

var unloadEvent = function ()

{

if (window.confirm("Are you sure?") == true) {

window.alert("That hurts me!");

} else {

window.alert("Yeah!");

return false;

}

}

Page 40: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 40

Пример. Скрипт связывания

<script type="text/javascript">

document.getElementById("mi2").onclick = onEvent;

var mi3 = document.getElementById("mi3");

var mi4 = document.getElementById("mi4");

var mi5 = document.getElementById("mi5");

var mi6 = document.getElementById("mi6");

var mi7 = document.getElementById("mi7");

mi4.addEventListener("click", addListenerEvent, false);

mi5.addEventListener("click", addTextEvent, false);

mi6.addEventListener("click", findRegExpEvent, false);

mi7.addEventListener("click", findAndReplaceRegExpEvent, false);

mi3.attachEvent("onclick", attachDetachEvent);

window.addEventListener("beforeunload", unloadEvent, false);

</script>

Page 41: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 41

Пример. Результат

Page 42: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 42

Пример. Результат. События

Page 43: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 43

Пример. Результат. Добавление текса

Page 44: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 44

Пример. Результат. Поиск совпадений

Page 45: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 45

Пример. Результат. Замена

Page 46: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 46

Пример. Результат. Переопределение событий

Page 47: JavaScript Базовый. Занятие 05

http://www.slideshare.net/IgorShkulipa 47

Лабораторная работа №2.

Дополнить веб-страницу с персональной информацией динамическимизменением информации на ней:

• Изменение стиля ФИО по наведению мышкой;• Показать/скрыть e-mail;• Изменить вид телефона с +380 12 345 67 89 на (012) 345-67-89 и

обратно с помощью регулярных выражений;• Другая активность страницы по желанию.