在前端,对于设备的辨识,很多人都知道有navigator对象,可以通过正则判断navigator中的userAgent属性来判断设备的类型,并做一些页面响应切换的,比如说当PC打开链接时加载的和移动端打开链接时加载的内容截然不同,达到类似响应式布局的效果。
但具体来说,对于设备判断,仅仅一个navigator对象是不够,因为,在PC端的浏览器,我们可以切换为手机模拟器,在移动端我们同样可以通过手机浏览器来访问电脑版的网页,当出现上述情况时,只依靠navigator对象来进行判断是不够严谨的。例如:
这就很难受了,所以我在想,移动端和PC端日常开发中最明显的区别是啥呢?相信很多人都有自己不同的看法,这里我认为最明显的区别应该是移动端对于点击事件有300毫秒的延迟,所以在移动端,对于点击事件我们一般是采用的ontouchstart事件或者tap事件来完成,但是众所周知,ontouchstart事件在PC端document对象中是没有这个属性的,所以我们可以先判断设备是PC端还是移动端,再进行设备类型的判断,这里我是通过一个方法来实现的:
document中的hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有,返回true,否则返回false。在进行了设备判断后再判断设备类型,这样能很好的判断出使用的终端设备以及设备类型。
网友评论