修正IE6 IE7的window.resize bug


<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta content="IE=6" http-equiv="X-UA-Compatible"/>
    <title>fix ie6 resize bug by 司徒正美</title>

    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    <title>Resize</title>
    <script type="text/javascript">
      if(!Array.prototype.map)
        Array.prototype.map = function(fn,scope) {
          var result = [],ri = 0;
          for (var i = 0,n = this.length; i < n; i++){
            if(i in this){
              result[ri++]  = fn.call(scope ,this[i],i,this);
            }
          }
        return result;
      };

      var getWindowSize = function(){
        return ["Height","Width"].map(function(name){
          return window["inner"+name] ||
            document.compatMode === "CSS1Compat" && document.documentElement[ "client" + name ]
            || document.body[ "client" + name ]
        });
      }
      window.onload = function(){
        if(!+"\v1" && !document.querySelector) { // for IE6 IE7
          document.body.onresize = resize;
        } else {
          window.onresize = resize;
        }
        var text =  document.getElementById("text")
        function resize() {
          text.innerHTML = getWindowSize().join(" : ");
        }
      }
    </script>

  </head>
  <body>
    <h1>修正IE6 IE7中window.onresize 被多次执行的bug</h1>
    <div id="text">这里是用来显示窗口大小</div>


  </body>
</html>

posted @ 2010-04-15 15:08  星火卓越  阅读(812)  评论(0编辑  收藏  举报