正在学 javascript 遇到个问题:
代码如下:
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript" >
function addEvent( node, type, listener )
         {
                if (node.addEventListener) 
                {
                
                        node.addEventListener( type, listener, false );
                        return true;
                } else if(node.attachEvent)
                {
        
                        node['e'+type+listener] = listener;
                        node[type+listener] = function(){node['e'+type+listener]( window.event );}
                        node.attachEvent( 'on'+type, node[type+listener] );
                        return true;
                }
        }
        function getBrowserWindowSize()
                {
                        var de = document.documentElement ;
                        alert( de ) ;      
                        return {
                                'width' :( window.innerWidth || (de && de.clientWidth ) || document.body.clientWidth ) ,
                                'height':( window.innerHeight || ( de && de.clientHeight ) || document.body.clientHeight )
                        } ; 
                } ;
        function wh()
        {
                var i = getBrowserWindowSize() ;
                alert( i.width ) ;
                alert(i.height ) ;
        }
        //addEvent( window , 'load' , wh ) ;     //但是这样却可以 
        var i = getBrowserWindowSize() ; // 出错 缺少对象 为什么? 大家指点下

        
        
</script>
</head><body></body></html>
问题想不明白 , 请大家帮助一下 .

解决方案 »

  1.   

    多个分号吧!
    function getBrowserWindowSize()
                    {
                            var de = document.documentElement ;
                            alert( de ) ;     
                            return {
                                    'width' :( window.innerWidth || (de && de.clientWidth ) || document.body.clientWidth ) ,
                                    'height':( window.innerHeight || ( de && de.clientHeight ) || document.body.clientHeight )
                            } ;
                    } ; 
      

  2.   

    JS放在<head> 里面,执行时,<body>还没有出现,所以找不到documentJS放在<body> 里面试试
      

  3.   

    补充:
    function addEvent( node, type, listener )
    的作用相当于:
    window.onload=wh
    或:
    window.onload=function(){wh()}
      

  4.   

    FF3也通过了.
    应该向caiying2009说的.
    LZ调用的地方不对.例如直接写在HEAD的SCRIPT里又未加DEFER且不是附加到onload函数.
      

  5.   


    我用的是IE6 , 不知你有没有把 internet 选项 高级里面的禁用脚本调试勾掉 , 如果没有勾掉
    就是看不到 错误的 , 否则它会弹出一个对话框 说 缺少对象 .
      

  6.   

    我在函数里面加了两个alert() :
     alert( document ) ;
     alert( document.body ) ; 
     
    这样第一个 alert() 显示的是一个Object 
    而第二个 alert 显示的是 null ;  我把脚本放到body里面 去试了下 , 还加了两句: alert( i.width ) ;
     alert(i.height ) ;结果可以正确运行 !!
    高兴啊.....
    非常感谢大家......