如何使用vanilla javascript触发窗口调整大小事件?

Moh*_*san 9 javascript testing

我试图触发调整使用普通的JS测试用的事件,但window.resizeTo()window.resizeBy()按照现代浏览器会阻止这些行为不触发事件.我试过jquery $(window).trigger('resize');但它只适用于通过jquery附加的事件$(window).on('resize', handler);.但在我的情况下,我正在处理的项目使用普通的javascript.

window.addEventListener('resize', function(){
    console.log('window has been resized !');
});

// or even using global onresize
window.onresize = function() {
    console.log('window has been resized!');
};
Run Code Online (Sandbox Code Playgroud)

bit*_*ten 18

你最有可能被人贬低,因为人们会认为它是重复的,但是你可能不需要jquery网站:

IE9 +

触发原生

// For a full list of event types: https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent
var el = document; // This can be your element on which to trigger the event
var event = document.createEvent('HTMLEvents');
event.initEvent('resize', true, false);
el.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

触发自定义

var el = document; // This can be your element on which to trigger the event
if (window.CustomEvent) {
  var event = new CustomEvent('my-event', {detail: {some: 'data'}});
} else {
  var event = document.createEvent('CustomEvent');
  event.initCustomEvent('my-event', true, true, {some: 'data'});
}

el.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

  • "el"来自哪里? (2认同)
  • 事件所附的任何地方.它可以是`window`或dom元素. (2认同)