2015-05-21 63 views
2

編輯:問題是,該網站是SOOO壞了,他仍然在document.readyState =「互動」所以我沒有調整事件:'(調整大小不擊發在IE瀏覽器?

我的工作在網站上(我沒有做)。我試圖橫幅正確地集成。我面對IE 10/9的問題。偶resize在不工作。

這是代碼我使用

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"); 
    }); 

這不適用於IE 10和9(它適用於FF和Chrome) 我在AddEventListener中輸入if,但不會觸發任何事件。我從來沒有看到我的控制檯日誌(「A」)

的網站是這個

http://www.courrierinternational.com/

有人可以幫助我,因爲我堅持......我真的不知道這可能是問題。

THX:3

+0

也許'attachEvent'以某種方式被淘汰。這是IE使用的舊版本。代碼看起來有點奇怪,但我認爲它應該工作,但我想它不? – Halcyon

+0

嗨!我嘗試使用addEventListener,AttachEvent和onresize從控制檯添加事件,但它不起作用。此外,我已經使用此代碼,它始終工作,但不是在這個網站上,我不明白爲什麼 – Bobby

+0

你可以驗證'refEvent'函數被調用? – Halcyon

回答

0

我不知道如何創建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); 
    } 
}()); 
相關問題