В прошлой статье мы рассмотрели, как работает стандартная модель событий для современных браузеров, в этой я покажу, как привязать события для браузеров Internet Explorer 8- .

Модель событий для Internet Explorer 8-.

В прошлой статье мы рассмотрели, как работает стандартная модель событий для современных браузеров, в этой я покажу, как привязать события для браузеров Internet Explorer 8-.

<html>
<head>
  <title>AttachEvent</title>
  <meta charset="utf-8">
</head>
<body>
  <a href="yandex.ru" id="link">Нажми!</a>
  <script>
   var link = document.getElementById('link');
   link.attachEvent('onclick', function(e) {
    e.returnValue = false;
    alert('Был произведён клик по ссылке!');
   });
  </script>
</body>
</html>

Как видите, разница лишь в том, что для старых IE используется метод attachEvent, где всё то же, что и в addEventListener, за исключением названия события: оно задаётся в формате: on + название события, и отсутствует третий параметр. Здесь также передаётся объект события, но заместо preventDefault у нас returnValue=false. Делает он абсолютно то же самое: отменяет стандартное поведение браузера. Остальные свойства и методы вы, как и всегда, можете найти в справочнике.

Чтобы удалить событие, используется метод detachEvent.

<html>
<head>
  <title>DetachEvent</title>
  <meta charset="utf-8">
</head>
<body>
  <a href="yandex.ru" id="link">Нажми!</a>
  <script>
   function myfunc(e) {
    e.returnValue = false;
    alert('Событие, которое не сработает');
   }
   var link = document.getElementById('link');
   link.attachEvent('onclick', myfunc);
   link.detachEvent('onclick', myfunc);
  </script>
</body>
</html>

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

Итак, сегодня вы узнали, как вешать события на элементы для старых IE(8-).