Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 在Chrome中检测设备仿真模式何时打开或关闭_Javascript_Jquery_Google Chrome - Fatal编程技术网

Javascript 在Chrome中检测设备仿真模式何时打开或关闭

Javascript 在Chrome中检测设备仿真模式何时打开或关闭,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,Chrome DevTools可以选择使用设备仿真模式 我知道有一个测试模式是否开启的方法。但我想知道它什么时候被激活或停用,点击 是否有任何由浏览器触发的事件表明模式已打开或关闭?我最终执行了以下操作: $(window).on('orientationchange', function(e) { if (e.tagret && e.target.devicePixelRatio > 1) { // Emulation mode activate

Chrome DevTools可以选择使用设备仿真模式

我知道有一个测试模式是否开启的方法。但我想知道它什么时候被激活或停用,点击

是否有任何由浏览器触发的事件表明模式已打开或关闭?

我最终执行了以下操作:

$(window).on('orientationchange', function(e) {

    if (e.tagret && e.target.devicePixelRatio > 1) {
        // Emulation mode activated
    } else {
       // Emulation mode deactivated
    }

});
适用于谷歌浏览器(我的版本:58.0)。这是防弹的方式吗?不确定。不过,这足够满足我的需要了

方向更改
文档。

我的解决方案:

$(window).on('orientationchange', function(e) {
    setTimeout(function() {
        var emulationModeActivated = window.navigator.userAgent.indexOf('Mobile') !== -1;
    }, 0);
});
Chrome在设备模拟模式下向userAgent添加了
Mobile
,例如“Mozilla/5.0(iPhone;CPU iPhone OS 103,如Mac OS X)AppleWebKit/602.1.50(KHTML,如Gecko)CriOS/56.0.2924.75Mobile/14E5239e Safari/602.1”


e.target.devicePixelRatio
在带有Retina显示屏的Mac上不可用,因为值始终大于1

一个可靠的解决方案可能需要监控调整大小事件、不断变化的devicePixelRatio、不断变化的userAgent、触摸模式检测的可用性和方向变化,并根据所有这些情况做出决策。这些信号可能意味着其他事情。