window.body.scrollHeight在降低高度时不会改变

时间:2013-12-19 21:40:25

标签: javascript jquery html css

所以我试图创建一种方法来检测身体何时调整大小,然后我抓住新的高度并通过postmessage发送它。功能不正常的部分是当我缩小身体尺寸时(当我移除(隐藏)一些元素以便身体缩小时)。这不会被检测到,因为window.body.scrollHeight只保存最后一个值。 这是我的代码,我将不胜感激任何建议:

  sendMessage();
  checkDocumentHeight(sendMessage);
  function sendMessage(){
    var heightWidth = document.body.scrollHeight+ " " +document.body.scrollWidth;
    parent.postMessage(heightWidth, "*");
  }
  function checkDocumentHeight(callback){
      var lastHeight = document.body.scrollHeight, newHeight, timer;
      (function run(){
          newHeight = document.body.scrollHeight;
          if( lastHeight != newHeight )
              callback();
          lastHeight = newHeight;
          timer = setTimeout(run, 1000);
      })();
  }

1 个答案:

答案 0 :(得分:0)

scrollHeight没有改变,你想使用innerHeight。 scrollHeight与文档高度基本相同。这是滚动条的高度。

window.innerHeight

http://jsfiddle.net/gUUYc/4/