在iOS 10 beta上的Safari中,window.outerWidth为0

时间:2016-09-09 17:28:00

标签: javascript ios ios9 ios10

使用安装了iOS 10的iPad,我在浏览器控制台中输入了window.outerWidth,其值为0。 OTOH,window.innerWidth正确生成1024(横向模式)。

在iOS 9中,window.outerWidth正确生成了1024,所以这只是iOS 10测试版中的一个错误,还是我错过了这个属性的微妙之处?

2 个答案:

答案 0 :(得分:1)

问题不仅限于iOS 10 Beta,而且我怀疑Apple Devs的修复工作是否应优先考虑,因为iOS设备的浏览器窗口两侧实际上没有外部框架,因此{{1} }与window.innerWidth相同。

要在不同的上下文中查看此功能,可以在浏览器中弹出打开检查器并模拟较小的设备。内部宽度将等于页面宽度,而外部宽度将等于打开的浏览器的整个宽度。

如果仍然需要使用externalWidth,您可以选择使用以下方法来检查屏幕宽度:

window.outerWidth

如果您在台式机上,

let mq = window.matchMedia( "(min-width: 1025px)" );的评估结果为mq.matches,然后您可以在台式机上使用true,在移动设备上使用outerWidth。或者,您可以像这样为您做一个替代功能:

innerWidth

请注意,let screenWidth = () => { const mq = window.matchMedia( "(min-width: 1025px)" ); if (mq.matches) { return window.outerWidth; } else { return window.innerWidth; } } 的横向宽度比iPad Air 2多1像素。

答案 1 :(得分:1)

如果您在项目中使用jQuery,则可以使用$(window).outerWidth()$(window).outerHeight()。这是一种可以在所有设备上正常工作的解决方法。