window.innerHeight ie8替代

我有一些依赖于window.innerHeight计算。 但正如我发现这在IE9之前的任何IE中都不可用。 我所看到的所有其他选项甚至都没有接近我使用window.innerHeight时得到的数字。

有人有工作吗?

您可能想尝试:

 document.documentElement.clientHeight; 

或者可以使用jQuery的.height()方法:

 $(window).height(); 

我为IE8和其他人制作了一个简单的垫片:

  • window.innerWidth
  • window.innerHeight
  • window.scrollX
  • window.scrollY
  • document.width
  • document.height

559个字节

 (function(d,b){var c=b.documentElement;var a=b.body;var e=function(g,h,f){if(typeof g[h]==="undefined"){Object.defineProperty(g,h,{get:f})}};e(d,"innerWidth",function(){return c.clientWidth});e(d,"innerHeight",function(){return c.clientHeight});e(d,"scrollX",function(){return d.pageXOffset||c.scrollLeft});e(d,"scrollY",function(){return d.pageYOffset||c.scrollTop});e(b,"width",function(){return Math.max(a.scrollWidth,c.scrollWidth,a.offsetWidth,c.offsetWidth,a.clientWidth,c.clientWidth)});e(b,"height",function(){return Math.max(a.scrollHeight,c.scrollHeight,a.offsetHeight,c.offsetHeight,a.clientHeight,c.clientHeight)});return e}(window,document)); 

有关更新,请查看此要点: yckart / 9128d824c7bdbab2832e

 (function (window, document) { var html = document.documentElement; var body = document.body; var define = function (object, property, getter) { if (typeof object[property] === 'undefined') { Object.defineProperty(object, property, { get: getter }); } }; define(window, 'innerWidth', function () { return html.clientWidth }); define(window, 'innerHeight', function () { return html.clientHeight }); define(window, 'scrollX', function () { return window.pageXOffset || html.scrollLeft }); define(window, 'scrollY', function () { return window.pageYOffset || html.scrollTop }); define(document, 'width', function () { return Math.max(body.scrollWidth, html.scrollWidth, body.offsetWidth, html.offsetWidth, body.clientWidth, html.clientWidth) }); define(document, 'height', function () { return Math.max(body.scrollHeight, html.scrollHeight, body.offsetHeight, html.offsetHeight, body.clientHeight, html.clientHeight) }); return define; }(window, document)); 

document.ready使用以下document.ready并明确定义innerHeight

 window.innerHeight = window.innerHeight || document.documentElement.clientHeight 

获取全窗口高度的Javascript方法..:

 window.outerHeight; 

获取完整文档高度的Javascript方法..:

 document.body.clientHeight; 

要么

 document.body.offsetHeight; 

获取可见文档区域高度的Javascript方法..:

这是没有酒吧的窗户高度。

 window.innerHeight; 

jQuery方法获取可见文档区域高度和窗口没有条形区域高度..:

 $(window).height(); 

要么

 $(window).outerHeight(); 

获取完整文档高度的jQuery方法..:

 $(document).height(); 

要么

 $(document).outerHeight(); 

这就是全部,我希望能帮助你:)

我搜索了因为这里发布的函数似乎都没有工作,我总是得到windowviewheight而不是文件全高…

这适用于我测试的所有浏览器……也就是iexplore 8:

 var D = document; var myHeight = Math.max( D.body.scrollHeight, D.documentElement.scrollHeight, D.body.offsetHeight, D.documentElement.offsetHeight, D.body.clientHeight, D.documentElement.clientHeight ); alert(myHeight);