在Chrome中打开或关闭设备仿真模式时进行检测
问题描述:
Chrome DevTools可以选择使用设备仿真模式。在Chrome中打开或关闭设备仿真模式时进行检测
我知道有一个way来测试模式是否为。但我想知道当它是激活或停用,点击。
是否有任何我可以听到的事件,由浏览器触发,表明模式已打开或关闭?
答
我落得这样做:
$(window).on('orientationchange', function(e) {
if (e.tagret && e.target.devicePixelRatio > 1) {
// Emulation mode activated
} else {
// Emulation mode deactivated
}
});
作品谷歌浏览器(我的版本:58.0)。它是防弹的方式吗?不确定。虽然这对我的需求已经足够了。
orientationchange
docs here。
答
我的解决办法:
$(window).on('orientationchange', function(e) {
setTimeout(function() {
var emulationModeActivated = window.navigator.userAgent.indexOf('Mobile') !== -1;
}, 0);
});
铬添加到Mobile
在的userAgent设备仿真模式,例如,“的Mozilla/5.0(iPhone; CPU iPhone OS 10_3,例如Mac OS X)为AppleWebKit/602.1.50(KHTML,例如Gecko)CriOS/56.0.2924.75 移动/14E5239e Safari浏览器/ 602.1"
e.target.devicePixelRatio
不与视网膜显示在Mac可用作值总是> 1
甲健壮的解决方案可能会希望监视RES ize事件,变化的devicePixelRatio,变化的userAgent,触摸模式检测的可用性以及orientationchange,并基于它们做出决定。这些信号可能意味着其他事情。 –