IE下window.onresize被多次執行的解決


頁面上給window對象定義其onresize事件,在拉伸縮小窗口時,其onresize方法將被執行多次,並且其具體執行的次數在不同的電腦有不同的值,相當詭異,Firefox等其他瀏覽器則無此現象,故可認定此為IE瀏覽器的bug。看看代碼:
 
<html>
<head>
<script type="text/javascript">
      function resizeFunc(){
         alert(Math.random());
      }
   </script>
</head>
<body>
    <div>Text...</div>
    <script type="text/javascript">
        window.attachEvent("onresize",resizeFunc); //方法一
        //window.onresize = resizeFunc;     //方法二,支持ff
    </script>
</body>
</html>

 

 
當拉伸或縮小窗口時,可以看到 alert 被執行了數次。
這個bug其實在幾個月前就發現了,當時進度逼得緊,沒有時間做詳細研究,況且此bug比較隱蔽,幾乎不會帶來任何異常,無非是多運行了幾遍函數,浪費點客戶的資源又不被覺察......
 
ok,來看看我暫時想到的解決方案:
 
<html>
<head>
<script type="text/javascript">
      function resizeFunc(){
         alert(Math.random());
      }
   </script>
</head>
<body>
<div id="box" style="width:100%">
    <div>Text...</div>
</div>
    <script type="text/javascript">
         var Container = document.getElementById("box");
        Container.attachEvent("onresize",resizeFunc); //方法一
        //Container.onresize = resizeFunc;     //方法二,支持ff
    </script>
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM