Javascript 检测屏幕宽度的可靠代码&;2017年所有浏览器的高度(尤其是Android手机)?
我目前正在使用来自的代码 它可以在桌面firefox上运行,但不能在我的android浏览器上运行(三星Galaxy S5手机上的股票或chrome更新为android 5)。我得到的是320x640而不是1280x1920 是否有可靠的解决方案来检测所有设备和浏览器的屏幕大小?我需要设备的屏幕宽度,而不是内部/客户端宽度或其他东西Javascript 检测屏幕宽度的可靠代码&;2017年所有浏览器的高度(尤其是Android手机)?,javascript,Javascript,我目前正在使用来自的代码 它可以在桌面firefox上运行,但不能在我的android浏览器上运行(三星Galaxy S5手机上的股票或chrome更新为android 5)。我得到的是320x640而不是1280x1920 是否有可靠的解决方案来检测所有设备和浏览器的屏幕大小?我需要设备的屏幕宽度,而不是内部/客户端宽度或其他东西 如果不可能,一些有影响力的人会评论说这是不可能的,所以成员们会很好地工作-我可以向我的客户展示这一点作为证据。描述了一种解决方案,用于修复设备像素比的获取: 因此,
如果不可能,一些有影响力的人会评论说这是不可能的,所以成员们会很好地工作-我可以向我的客户展示这一点作为证据。描述了一种解决方案,用于修复设备像素比的获取: 因此,完整的代码是:
var ratio = window.getDevicePixelRatio();
var w = screen.width * ratio;
var h = screen.height * ratio;
注意:abhinav sharma在本文中也引用了此解决方案。检查哪种可能是潜在的解决方案。我自己还没有测试过。这也出现在abhinav sharma的回答中。就我所知,这个问题没有真正的解决办法@MarkoAvlijaš@andreim-这在我的手机上工作。你打算创建一个答案吗?@MarkoAvlijaš我不想创建一个答案,因为除了引用另一个答案之外,我没有任何新的东西。如果您愿意,您可以创建一个提供测试结果的答案。这可能会带来一些新的东西,我会在这里投票;)
/*! GetDevicePixelRatio | Author: Tyson Matanich, 2012 | License: MIT */
(function (window) {
window.getDevicePixelRatio = function () {
var ratio = 1;
// To account for zoom, change to use deviceXDPI instead of systemXDPI
if (window.screen.systemXDPI !== undefined && window.screen.logicalXDPI !== undefined && window.screen.systemXDPI > window.screen.logicalXDPI) {
// Only allow for values > 1
ratio = window.screen.systemXDPI / window.screen.logicalXDPI;
}
else if (window.devicePixelRatio !== undefined) {
ratio = window.devicePixelRatio;
}
return ratio;
};
})(this);
var ratio = window.getDevicePixelRatio();
var w = screen.width * ratio;
var h = screen.height * ratio;