Glenn.App.$$D.getScroolTop is not a functionsource code path is  here
<input type="text" id="humanName"/>
<br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<input type="button" id="button1"/>
<script>
/*!
Glenn 2010 1212
 */
var Glenn = {};
Glenn.App= (function(undefined){var O,   D, E ;
/*Object*/O = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};
  
 
E=
{   addEvent: function( obj, type, fn ) {
     if ( obj.attachEvent ) {
      obj['e'+type+fn] = fn;
     obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
       obj.attachEvent( 'on'+type, obj[type+fn] );
    } else
      obj.addEventListener( type, fn, false );
   },
 
  removeEvent:function( obj, type, fn ) {
   if ( obj.detachEvent ) {
     obj.detachEvent( 'on'+type, obj[type+fn] );
      obj[type+fn] = null;
     } else
     obj.removeEventListener( type, fn, false );
   }
}
/*Dom*/D = {
    getScrollTop: function(node) {
        var doc = node ? node.ownerDocument : document;
        return doc.documentElement.scrollTop || doc.body.scrollTop;
    }
}; 
 
 return {
    $$:O,
    $$D:D,
    $$E:E
};})();
</script>
<script>
function fn()
{
Glenn.App.$$("humanName").value="bbc";
Glenn.App.$$("humanName").value=Glenn.App.$$("humanName").value+ Glenn.App.$$D.getScroolTop();
}
Glenn.App.$$E.addEvent(Glenn.App.$$("button1") ,"click",fn )
</script>

解决方案 »

  1.   

    I find the error, very silly, anyone find this will give the score. 
      

  2.   


       //Glenn.App.$$("humanName").value=Glenn.App.$$("humanName").value+ Glenn.App.$$D.getScroolTop();
         Glenn.App.$$("humanName").value=Glenn.App.$$("humanName").value+ Glenn.App.$$D.getScrollTop();
       // the method is  getScrollTop but not  getScroolTop
      

  3.   

    方法名都能拼错。细心点啊
    写js不比在ide里些c#。关键字、方法名很少有智能感知的高亮提醒
    所以要小心
      

  4.   

    是引擎检查出你闭包定义的对象“Glenn.App”的“$$D”属性(方法)定义有错,具体就是下面的定义不正确:
    D = {
        getScrollTop: function(node) {
            var doc = node ? node.ownerDocument : document;
            return doc.documentElement.scrollTop || doc.body.scrollTop;
        }
    }
    其中,如果节点“node”传入,“doc”就等于“node.ownerDocument”,返回“doc.documentElement.scrollTop”就等于返回“node.ownerDocument.documentElement.scrollTop”,貌似就错在该红色标识的表达式。
      

  5.   

    哦,索瑞!我的说法是错误的。刚看了段漂浮广告的代码,也一样的:
    var floatAd = {};floatAd.getScrollTop = function(node) {
        var doc = node ? node.ownerDocument : document;
        return doc.documentElement.scrollTop || doc.body.scrollTop;
    };