setInterval警报不会使用dom属性更新

时间:2012-05-24 15:17:50

标签: javascript html dom intervals

以5秒的间隔调用document.body.scrollHeight的警报时,警报会返回文档的初始scrollHeight,但即使页面的滚动高度已经明显更改,也不会更改。有没有办法让它返回页面的实际滚动高度,而不仅仅是初始值?

代码/伪代码

<script>
    setInterval(function() {
        alert(document.body.scrollHeight);
    }, 5000);

    function extendHeight() {
    document.getElementById('box').style.height = 1000;
    }
</script>

<body>
  <div id='box' style='height: 500px;'>
    <button onClick="extendHeight();">Change Height</button>
  </div>
</body>

即使单击按钮,警报也会返回500像素。

1 个答案:

答案 0 :(得分:1)

问题是您应该将'1000px'分配给document.getElementById('box').style.height而不是1000

<script>
    setInterval(function() {
        alert(document.body.scrollHeight);
    }, 5000);

    function extendHeight() {
    document.getElementById('box').style.height = "1000px";
    }
</script>

<body>
  <div id='box' style='height: 500px;'>
    <button onClick="extendHeight();">Change Height</button>
  </div>
</body>

小提琴:http://jsfiddle.net/kzLEr/