gpt4 book ai didi

javascript - 可靠的代码来检测 2017 年所有浏览器(尤其是 Android 手机)的屏幕宽度和高度?

转载 作者:行者123 更新时间:2023-11-29 23:46:40 27 4
gpt4 key购买 nike

我目前正在使用来自 this answer 的代码

var ratio = window.devicePixelRatio || 1;
var w = screen.width * ratio;
var h = screen.height * ratio;

它适用于桌面 firefox,但不适用于我的 android 浏览器(我的 Samsung Galaxy S5 手机上的 stock 或 chrome 已更新到 android 5)。我得到 320x640 而不是 1280x1920。

是否有可靠的解决方案来检测所有设备和浏览器的屏幕尺寸?我需要设备的屏幕宽度,而不是内部/客户端宽度或其他东西。

如果这不可能,有影响力的 SO 成员发表的几条评论说这是不可能的也行——我可以向我的客户证明这一点。

最佳答案

描述了一种固定获取设备像素比的解决方案 here :

/*! 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;

注意: question answer 中也引用了此解决方案作者:abhinav sharma。

关于javascript - 可靠的代码来检测 2017 年所有浏览器(尤其是 Android 手机)的屏幕宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43759361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com