在所有最新的浏览器中:
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
不同。 - Šime Vidasdocument.body.clientWidth
。 - janwindow.innerWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
window.innerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
我知道innerWidth
可能不是完全一样的,但是getBoundingClientRect
也可以以类似的方式使用:
elem = document.documentElement.getBoundingClientRect();
width = elem.getBoundingClientRect().right - elem.getBoundingClientRect().left;
适用于ie8
document.documentElement.clientWidth
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获取客户端宽度的
$(window).innerWidth()
返回的数字与window.innerWidth
不同。 - Šime Vidas