Во всех последних браузерах:
window.innerWidth // 1920
В Internet Explorer 8
window.innerWidth // undefined
Каков наилучший способ получить это значение в IE8?
Во всех последних браузерах:
window.innerWidth // 1920
В Internet Explorer 8
window.innerWidth // undefined
Каков наилучший способ получить это значение в IE8?
innerWidth
поддерживается IE9, а не IE8, вы можете сделать это:
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
В приведенной выше строке вы получите ширину от IE, а также других совместимых со стандартом браузеров.
Если вы используете jQuery, $(window).innerWidth()
также даст вам желаемый результат во всех браузерах.
Для этого я все еще использую:
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/...
для ie8 используйте
document.documentElement.clientWidth
Я знаю, что innerWidth
может быть не совсем то же самое, но getBoundingClientRect
также может использоваться с аналогичной емкостью:
elem = document.documentElement.getBoundingClientRect();
width = elem.getBoundingClientRect().right - elem.getBoundingClientRect().left;
Вы можете получить эту информацию из IE 8 с помощью
document.documentElement.clientWidth
Обратите внимание, что это значение не будет точно таким же, что IE 9 вернется для window.innerWidth
.
Без 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;
}
document.documentElement.clientWidth;
это используется для ie8 для получения ширины клиента
Обратите внимание: метод .innerWidth не применим к объектам окна и документа; для них вместо этого используйте .width().