首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(doc && doc.scrollTop区,并返回'Window‘对象

(doc && doc.scrollTop区,并返回'Window‘对象
EN

Stack Overflow用户
提问于 2013-08-28 16:44:38
回答 2查看 348关注 0票数 3

我只想获得文档的scrollTop并使用这个answer的代码。但我得到的是一个“窗口”物体。我已经测试了IE10,Chrome和Firefox。这是我的代码:

代码语言:javascript
复制
    var doc = document.documentElement, body = document.body;
    var left = (doc && doc.scrollLeft || body && body.scrollLeft || 0);
    var top = (doc && doc.scrollTop  || body && body.scrollTop  || 0);

    scroll = {
        top: (doc && doc.scrollTop  || body && body.scrollTop  || 0),
        left: (doc && doc.scrollLeft || body && body.scrollLeft || 0)
    };


    console.log(scroll.top); // return 0
    console.log(top); // return object 'Window'

我认为这是一个简单的问题,但我不知道它为什么会返回一个对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-28 16:48:51

变量top在窗口作用域中。我可以用window.topwindow.left来引用它。window.top的问题已经定义好了。window.top指的是层次结构中最顶部的窗口。浏览器不允许您设置该变量。

您需要将它定义为不同的变量,或者更改作用域,这样它就不会与全局窗口命名空间发生冲突。

票数 3
EN

Stack Overflow用户

发布于 2013-08-28 16:49:48

可能是您的console.log不在var top声明的内部范围之内。

当引用top时,您将不是引用声明的变量,而是引用window.top

代码语言:javascript
复制
console.log(top); // global variable `window.top`: window object

;(function(){
  var top = 0;

  console.log(top); // local variable `top`: 0

})();

console.log(top); // global variable `window.top`: window object
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18493718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档