Как получить внутреннюю ширину в Internet Explorer 8

Во всех последних браузерах:

 window.innerWidth // 1920

В Internet Explorer 8

 window.innerWidth // undefined

Каков наилучший способ получить это значение в IE8?

Ответ 1

innerWidth поддерживается IE9, а не IE8, вы можете сделать это:

var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;

В приведенной выше строке вы получите ширину от IE, а также других совместимых со стандартом браузеров.


Если вы используете jQuery, $(window).innerWidth() также даст вам желаемый результат во всех браузерах.

Ответ 2

Для этого я все еще использую:

window.innerWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
window.innerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

Но чтобы подражать реальному dom-getter, взгляните на это: fooobar.com/questions/92770/...

Ответ 3

для ie8 используйте

document.documentElement.clientWidth

Ответ 4

Я знаю, что innerWidth может быть не совсем то же самое, но getBoundingClientRect также может использоваться с аналогичной емкостью:

elem = document.documentElement.getBoundingClientRect();
width = elem.getBoundingClientRect().right - elem.getBoundingClientRect().left;

Ответ 5

Вы можете получить эту информацию из IE 8 с помощью

document.documentElement.clientWidth

Обратите внимание, что это значение не будет точно таким же, что IE 9 вернется для window.innerWidth.

Ответ 6

Без jQuery вы можете попробовать это, чтобы получить height и width

var myWidth = 0, myHeight = 0;
if (typeof (window.innerWidth) == 'number') { //Chrome
     myWidth = window.innerWidth; 
     myHeight = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
     myWidth = document.documentElement.clientWidth; 
     myHeight = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { //IE9
     myWidth = document.body.clientWidth; 
     myHeight = document.body.clientHeight;
}

Ответ 7

document.documentElement.clientWidth;

это используется для ie8 для получения ширины клиента