window.innerHeight IE8替代(window.innerHeight ie8 al

2019-06-23 15:44发布

我有一些计算方法,依靠window.innerHeight 。 但是,正如我已经找到了,这是不是在IE9之前的任何IE可用。 所有我看过其他选项甚至不接近这个数字,我得到,当我使用window.innerHeight

没有任何人有一个解决办法?

Answer 1:

你可能也想尝试:

document.documentElement.clientHeight;

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

$(window).height();


Answer 2:

我为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));


Answer 3:

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

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


Answer 4:

Javascript方法得到充分窗口高度..:

window.outerHeight;

JavaScript方法来获得完整的文件的高度..:

document.body.clientHeight;

要么

document.body.offsetHeight;

JavaScript方法来获得可见的文档区域高度..:

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

window.innerHeight;

jQuery方法来获得可见的文档区域的高度和窗户没有酒吧区高度太..:

$(window).height();

要么

$(window).outerHeight();

jQuery的方法来获得完整的文件的高度..:

$(document).height();

要么

$(document).outerHeight();

这一切,我希望能帮助你:)



Answer 5:

我搜索了,因为没有一个张贴在这里的功能似乎工作,我总是得到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); 


文章来源: window.innerHeight ie8 alternative