我想使用代码调用resize事件。
我正在使用以下代码。它在其他浏览器中工作正常但在IE11中没有。
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
$(window).trigger('resize');
} else {
window.dispatchEvent(new Event('resize'));
}
请告诉我,我错过了什么吗?
答案 0 :(得分:21)
即使 Internet Explorer 11 也不支持调整大小事件。因此,我通过使用以下解决方案解决了这个问题。
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
var evt = document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(evt);
} else {
window.dispatchEvent(new Event('resize'));
}
答案 1 :(得分:0)
试试这个
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent .initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
答案 2 :(得分:0)
我遇到的其他帖子How to trigger the window resize event in JavaScript?的解决方案效果很好。
相同的代码段
if (typeof(Event) === 'function') {
// modern browsers
window.dispatchEvent(new Event('resize'));
} else {
// for IE and other old browsers
// causes deprecation warning on modern browsers
var evt = window.document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(evt);
}