Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测屏幕宽度的可靠代码&;2017年所有浏览器的高度(尤其是Android手机)?_Javascript - Fatal编程技术网

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

Javascript 检测屏幕宽度的可靠代码&;2017年所有浏览器的高度(尤其是Android手机)?,javascript,Javascript,我目前正在使用来自的代码 它可以在桌面firefox上运行,但不能在我的android浏览器上运行(三星Galaxy S5手机上的股票或chrome更新为android 5)。我得到的是320x640而不是1280x1920 是否有可靠的解决方案来检测所有设备和浏览器的屏幕大小?我需要设备的屏幕宽度,而不是内部/客户端宽度或其他东西 如果不可能,一些有影响力的人会评论说这是不可能的,所以成员们会很好地工作-我可以向我的客户展示这一点作为证据。描述了一种解决方案,用于修复设备像素比的获取: 因此,

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

它可以在桌面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;