Javascript 仅检测桌面的最佳方法(非移动)

Javascript 仅检测桌面的最佳方法(非移动),javascript,html,css,mobile,media-queries,Javascript,Html,Css,Mobile,Media Queries,最后一天,我花了很多时间研究和尝试各种方法,使用css媒体查询,最常见的解决方案是最小宽度为1200px。然而,随着亚马逊Kindle Fire HDX和一些可笑的4K智能手机等高分辨率移动设备的推出,这还不够 我正在考虑使用CSS媒体查询,除了检测移动设备和反转媒体查询的CSS的javascript库之外,还可以将最小宽度设定为1200px 我知道,但这已经走上了模块化构建的道路,而不是单一的CDN源。我更喜欢保持最新的轻量级库,这样我就不必担心未来的设备-有什么建议吗 最后。。。是否有更可靠

最后一天,我花了很多时间研究和尝试各种方法,使用css媒体查询,最常见的解决方案是最小宽度为1200px。然而,随着亚马逊Kindle Fire HDX和一些可笑的4K智能手机等高分辨率移动设备的推出,这还不够

我正在考虑使用CSS媒体查询,除了检测移动设备和反转媒体查询的CSS的javascript库之外,还可以将最小宽度设定为1200px

我知道,但这已经走上了模块化构建的道路,而不是单一的CDN源。我更喜欢保持最新的轻量级库,这样我就不必担心未来的设备-有什么建议吗

最后。。。是否有更可靠、更简单的方法来实现仅桌面检测

我没有提到的一个重要注意事项是,我根本不关心设备功能。如果不是手机,我只想省略页面上的广告显示——这不需要浏览器/设备中的任何花哨功能


我知道UA嗅探是个坏主意,但是否100%确定所有移动设备都包含“移动”一词在用户代理中?

我不知道这是否是最好的方法,但我曾经检查
窗口中的
ontouchstart
事件是否在
对象上-我尝试不嗅探浏览器,因为这本质上是媒体查询的目的

var isDesktop = !('ontouchstart' in window);
不过需要注意的是:有触摸屏笔记本电脑(实际上我有一台便宜的)和台式电脑。越来越多的人认为,这种技术在这个世界上不会持续很久,或者至少不会万无一失


最好的方法总是

,所以这就是我提出的解决方案。。。有两个横幅图像(谷歌,必应)。Google banner仅加载移动设备(包括hi-res)

意见和建议

$(文档).ready(函数(){
var md=newmobiledetect(window.navigator.userAgent);
if(md.mobile()!==null){
var d=document.getElementById(“banner1”);
d、 className=d.className+“ismobile”;
}
$('#output').html('isMobile:'+md.mobile());
});
div{
宽度:50%;
利润率:10px自动;
}
img{
宽度:100%;
高度:自动;
}
/*在本例中应为1200,但在本例中为300,因为代码段中的视口太小*/
@仅介质屏幕和(最小宽度:300px){
/*不要在桌面上显示广告(大分辨率)*/
#横幅1{
显示:无;
}
/*高分辨率移动设备的覆盖*/
#横幅1.ismobile{
显示:块;
}
}


可能重复关于重复的问题,答案显示javascript和jquery中的解决方案“桌面”和“移动”都不是有用的类别。你到底关心什么?屏幕尺寸?网络连接速度?触摸支持?测试你真正关心的是什么。通常在web开发中,桌面和移动设备不是一个有用的类别——但在我的情况下,这就是我需要知道的全部。编辑Q以反映我的目的。我只需要知道用户是在PC上还是在笔记本电脑上,笔记本电脑设备也可以有触摸屏?@Trunguyen已经在键入您评论的免责声明:)我知道modernizer使用“渐进增强”来检测移动设备,但就我而言,我不需要知道设备的功能。我只需要知道目标设备是否是桌面,以便省略特定功能是的,我理解,但渐进增强是一种设计理念,而不是实现,所以当我说最好的方法是PE时,我的意思是无论您的业务逻辑需要什么,如果你嫁给了一个需要浏览器嗅探的解决方案,你会头疼的