如何触发 window.onresize 事件?
我试图以编程方式触发窗口上的调整大小事件:
var evt = document.createEvent('HTMLEvents');
evt.initEvent('resize', true, false);
window.dispatchEvent(evt);
不幸的是,这不起作用。我正在尝试让 ExtJS 库进行重新计算,它使用 DOM Level 3 事件,所以我不能只调用 window.onresize();
。
I am trying to fire the resize event on window programmatically:
var evt = document.createEvent('HTMLEvents');
evt.initEvent('resize', true, false);
window.dispatchEvent(evt);
That unfortunately does not work. I am trying to make ExtJS library to do recalculations, and it uses DOM Level 3 events so I cannot just call window.onresize();
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您正在创建错误的事件。
调整大小是一个 UIEvent,在此处阅读规范
您需要执行的操作这个:
在这里查看它的实际情况:http://jsfiddle.net/9hsBA/
You are creating the wrong event.
Resize is a UIEvent, read the specs here
You need to do this:
See it in action here: http://jsfiddle.net/9hsBA/
如果 createEvent 可能弃用,转而使用CustomEvent,这是使用 CustomEvent API 的类似代码片段:
In case createEvent might get deprecated in favor of CustomEvent, here's a similar snippet using the CustomEvent API:
以防万一其他人需要这个,在 Extjs 4.1 中你可以做一些典型的不优雅的事情......
在视口上不需要 id - .query('viewport') 部分使用视口的别名配置。
Just in case anyone else needs this, in Extjs 4.1 you can do something typically inelegant...
No need for an id on the viewport - the .query('viewport') part is using the viewport's alias config.