Javascript问题:适用于FF但不适用于Chrome和Safari

时间:2011-08-21 15:39:09

标签: javascript google-chrome safari

嗨,这是我在一个div上使用的代码,以便自动将其高度设置为第一个窗口。该脚本在Firefox中运行良好,但在Chrome或Safari中无效。我尝试了几种方法来修复它,包括一些来自以前的海报,但没有效果,不幸的是。我认为问题隐藏在document.getElementById("ID").style.height的某个地方,但我不完全确定。如果有人能提供帮助我会很高兴的。提前致谢! :)

window.onload = Resize;
window.onresize = Resize;
function Resize() {
  if (document.documentElement.scrollHeight === document.documentElement.clientHeight)
  {
     document.getElementById("ID").style.height = (window.innerHeight-220) + "px";
  }
};

1 个答案:

答案 0 :(得分:1)

尝试this

function getHeight() {
    var myHeight = 0;
    if (typeof(window.innerHeight) == 'number') {
        //Non-IE
        myHeight = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        //IE 6+ in 'standards compliant mode'
        myHeight = document.documentElement.clientHeight;
    } else if (document.body && document.body.clientHeight) {
        //IE 4 compatible
        myHeight = document.body.clientHeight;
    }
    return myHeight;
}

function getScrollY() {
    var scrOfY = 0;
    if (typeof(window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
    } else if (document.body && document.body.scrollTop) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
    } else if (document.documentElement && document.documentElement.scrollTop) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
    }
    return scrOfY;
}

function Resize() {
    document.getElementById("ID").style.height = Math.round(getHeight() + getScrollY()) + "px";
}
window.onload = Resize();
window.onresize = Resize();

这会将ID的高度设置为浏览器窗口的高度+垂直滚动偏移量。