繁体   English   中英

调整大小无法在IE上触发?

[英]Resize not firing on IE?

编辑:问题是该网站太糟糕了,他仍然在document.readyState =“ interactive”中,所以我没有调整大小的事件:'(

我正在一个网站上(不是我做的)。 我正在尝试正确整合横幅。 我遇到了IE 10/9的问题。 调整大小不起作用。

这是我使用的代码

function addEvent(elementDOM, evenement, fonction){
    var refEvent = null;
    if(elementDOM)
    {
        if (elementDOM.addEventListener)
        {
            refEvent = fonction;
            elementDOM.addEventListener (evenement,refEvent,false);
        }
        else if (elementDOM.attachEvent)
        {
            refEvent =function() {
                return fonction.call(elementDOM,window.event);
            };
            elementDOM.attachEvent ('on'+evenement,refEvent);
        }
        else
        {
            elementDOM["on"+evenement] = fonction;
        }
    }
    return refEvent;
}

我这样称呼它:

addEvent(window,"resize",function(){
        console.log("a");
    });

如果我输入了AddEventListener,但没有触发任何事件,则此方法不适用于IE 10和IE 9(适用于FF和Chrome)。 我从没有看到控制台日志(“ a”)

网站就是这个

http://www.courrierinternational.com/

有人可以帮助我,因为我被卡住了...我真的不知道可能是什么问题。

Thx:3

我不知道如何用document.readyState = "interactive"创建一些东西,所以我无法复制它。

也就是说,您可以设置一个功能来监视正在调整大小的文档并自己手动触发事件。

就像是:

// Warning, code written on-the-fly and untested
(function() {
  var oldWidth;
  var oldHeight;

  function watchForResize() {
    // from http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript
    var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0)
    var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0)

    if ((w !== oldWidth) || (h !== oldHeight)) {
      window.dispatchEvent(new Event('resize'));
    }

    w = oldWidth;
    h = oldHeight;

    window.setTimeout(watchForResize, 100);
  }
}());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM