如何检测页面请求来自移动端还是桌面端客户端

6
我们已经开发了一个网站,它有通用首页和移动页面,其中一个用于移动设备,另一个用于PC。
我想要一段代码来自动检测设备,并在用户使用移动设备时导航到移动主页,在PC上使用时导航到通用首页。问题是它应该使用JavaScript或纯HTML。

可能是如何使用JavaScript检测移动设备?的重复问题。 - Manse
请自动检测移动浏览器的用户代理 -> https://dev59.com/cHNA5IYBdhLWcg3wVcP6 - Manse
为什么要用JavaScript而不是服务器来做这个? - epascarello
4个回答

7

2
你知道有没有使用它的示例吗?我查看了网站和页面源代码。它的JavaScript版本如此不清楚如何使用。谢谢! - curious1

2
要确定这一点,您需要检查请求您网站的HTTP头,特别是User-Agent字符串。
您没有提到您使用的技术,但您可以在Web服务器级别或应用程序内部进行重定向。

2
从您的链接中:用户代理嗅探现在被认为是不良实践...相反,W3C建议创建标准的HTML标记,以便在尽可能多的浏览器中正确呈现,并测试特定的浏览器功能,而不是特定的浏览器版本或品牌。 - Sablefoste
@Sablefoste - 同意“嗅探”功能现在被认为是更好的实践。我4年前写了这个答案 :-) - m.edmondson

2
不要制作独立的网站。使用响应式设计。我的手机浏览器和我的桌面浏览器一样好。

响应式设计在这个情境下有点模糊。有时,根据条件导航到一个单独的页面可能很有用,可以假设移动端,并允许在服务器响应中删除臃肿的元素,如重型图片、脚本和样式表。或者当移动端使用环境与桌面差别很大时。但简单地提供一个页面并不总是最好的方法,正如 Ethan Marcotte 在《响应式网页设计》(来自 A Book Apart 的《Becoming Responsive》章节中指出的那样。 - Rich

0

你可以使用以下代码:

var index = navigator.appVersion.indexOf("Mobile");

如果请求不来自移动站点,这将返回负值。

祝学习愉快 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接