document.viewport.getHeight()不准确?

unr*_*ity 2 javascript prototypejs

关于Scriptaculous'Effect.Move的演示,可以在这里找到:

<style type="text/css">
  a#move_demo { background:#fa0000; color:#fff; padding:5px; border:1px solid #000; }
</style>

<div class="demo">
  <a href="#" id="move_demo" onclick="new Effect.Move(this, { x: 60, y: -30 }); return
false;">Click me for a demo!</a>
</div>
Run Code Online (Sandbox Code Playgroud)

对于包含该页面的单个页面,document.viewport.getHeight()返回32,而对于宽度,它没有问题.

为什么会这样?它不应该是视口的高度,而不是从文档顶部到底部的高度?

有解决方法吗?

unr*_*ity 6

事实证明你需要一个正确的DOCTYPE才能使它正常工作,否则Prototype将处于"quirks模式",它不会让getheight()按预期工作.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
Run Code Online (Sandbox Code Playgroud)