是否可以使用Javascript或普通Javascript中的XUL函数获取当前视口范围(浏览器中页面的可见部分)?
谢谢!
答案 0 :(得分:1)
对于视口,您需要使用document.documentElement.scrollTop
/ scrollLeft
/ scrollHeight
/ scrollWidth
。有一点点复杂:我认为在怪癖模式(document.compatMode
是"BackCompat"
)中,您需要在document.body
而不是document.documentElement
上检查这些属性。
有关文档,请参阅https://developer.mozilla.org/en/DOM/element.scrollTop。
编辑:您似乎并不真正对视口感兴趣,而是对其内容感兴趣。 AFAIK没有通用的方法来获取网页特定区域的内容。它绝对不能用单个Range
对象来描述,而是一组范围。即便如此:如果元素包含大量文本且所有文本都是单个TextNode
,则您不会知道文本的哪些部分可见,哪些部分不可见。
但是,在某些特殊情况下(特别是当页面结构很简单时),您可以使用range.getBoundingClientRect()了解正在显示的文本。首先选择范围内的所有内容并减少选择,直到范围大小在视口边界内。
这是一个示例,它用于包含大量文本的垂直滚动<div>
:http://jsfiddle.net/5vEdP/(在Firefox 6,Chrome 14和IE 9中测试过)。首先需要确保每个文本字符都放在自己的TextNode
中,否则您将无法在Range
对象中单独选择它。然后,它选择文本的容器并移动范围的开始,直到范围的顶部边界低于容器的顶部边界。然后通过移动范围的末尾对底部边界做同样的事情。最后,您将获得一个范围,该范围仅选择完全可见的文本节点。
答案 1 :(得分:-1)
width:document.body.offsetWidth; height:document.body.offsetHeight;
HERE是各种浏览器的更好示例