Windows调整大小触发事件在IE11中不起作用

时间:2015-06-01 10:45:51

标签: javascript jquery html5 cross-browser

我想使用代码调用resize事件。

我正在使用以下代码。它在其他浏览器中工作正常但在IE11中没有。

if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
            $(window).trigger('resize');

        } else {
            window.dispatchEvent(new Event('resize'));

        }

请告诉我,我错过了什么吗?

3 个答案:

答案 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);
}