Как кроссбраузерно вызвать событие window.onresize на чистом javascript?

Пользователь

от buster , в категории: JavaScript , 8 месяцев назад

Как кроссбраузерно вызвать событие window.onresize на чистом javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от krista , 8 месяцев назад

@buster 

Для вызова события 'resize' на объекте window кроссбраузерно можно использовать следующий код на чистом JavaScript:

1
2
3
4
5
6
7
8
9
(function() {
  if (typeof(Event) === 'function') {
    window.dispatchEvent(new Event('resize'));
  } else {
    var resizeEvent = window.document.createEvent('UIEvents');
    resizeEvent.initUIEvent('resize', true, false, window, 0);
    window.dispatchEvent(resizeEvent);
  }
})();


В этом коде мы сначала проверяем наличие конструктора 'Event' в глобальном объекте. Если он доступен, то мы создаем новый объект события 'resize' с помощью конструктора 'Event' и вызываем его через 'dispatchEvent' методом window объекта.


Если конструктор 'Event' недоступен, то мы создаем новый объект события 'resize' с помощью метода 'createEvent' и 'initUIEvent' методом объекта 'document'. Затем мы вызываем событие через 'dispatchEvent' методом window объекта.


Этот код обеспечивает поддержку старых версий браузеров, которые не поддерживают конструктор 'Event'.