JS/PHP/ASP.NET实现手机打开PC网页后自动跳到手机网页
作者:admin 时间:2014-9-11 10:36:26 浏览:用手机打开PC网页,会有诸多的不便,由于手机屏幕太小,所以网页缩小后字体也相应缩小,要放大才可以看清,但放大后网页又超出了手机的屏幕宽度,需要手动来左右拖动网页,操作起来相当麻烦。为了顾及手机用户的体验,网页手机版顺应而出,目前已有一些工具可以自动把网站生成手机网页了。
手机打开PC网页
最近把网站内容做了一个手机版,主要是调整好界面布局,不多余的东西去掉,以适合手机用户使用。现在有一个比较头疼的问题是,用户多数是记住PC端使用的主域名,而不去记手机端使用的二级域名,有什么办法改善这一状况呢。
我看到很多网站都是在PC网页的某个地方加上一个按钮,提示用户可以切换都手机访问,点击那个按钮即可。这不失为一个方法,但是我感觉这并不是一个好的方法,因为当用户打开PC网页时,内容堆得满满的,广告多的话会有点眼花缭乱,可能没有发现有个“手机版”的连接图标,这样的用户体验是比较差的。我现在想实现自动化,即是当用户用手机打开PC网页时,能自动跳到手机网页,有什么方法可以实现呢?
我后来想到的切入点是从浏览器来突破,每一个浏览器的userAgent是不同的,而主流的PC浏览器和手机浏览器都是十分有限的,可以通过网页程序来获得客户端浏览器的userAgent,进而判断客户端是PC还是手机,从而跳转到对应的网页。
js实现手机打开PC网页自动跳到手机网页
通过测试,前端js程序是可以实现这一功能的。如下面是主要判断代码:
<script language="JavaScript">
var ua = window.navigator.userAgent; //获得浏览器类型
//alert(ua);
if(ua.indexOf("MSIE")>=1)
{
alert("这是 IE");
//客户端是PC,应使用PC网页
}
else if(ua.indexOf("Firefox")>=1)
{
alert("这是 Firefox");
//客户端是PC,应使用PC网页
}
else if(ua.indexOf("Chrome")>=1)
{
alert("这是 Chrome");
//客户端是PC,应使用PC网页
}
...... //这里列举所有主流的PC浏览器类型
else
{
//客户端是手机,自动跳转到手机网页
}
</script>
通过上面的js程序,便可实现手机打开PC网页自动跳到手机网页的功能。
PHP和ASP.NET判断客户端是否手机
根据上述的思路,如果是动态网页,也可以用PHP等动态语言实现。不管什么语言,都是判断客户端浏览器userAgent。
下面是PHP获取userAgent并判断客户端是否手机的代码:
<?php
//php判断客户端是否为手机
$agent = $_SERVER['HTTP_USER_AGENT'];
if(strpos($agent,"NetFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS"))
header("Location:xxxxxxxx");
?>
asp.net获取userAgent的代码:
下面为获取浏览器UA的ASP.NET代码:
<%
string ua1 = Request.ServerVariables["HTTP_USER_AGENT"];
Response.Write(ua1);
%>
或者
<%
string ua2 = Request.UserAgent;
Response.Write(ua2);
%>
或者
<%
string ua3 = Request.Headers["User-Agent"];
Response.Write(ua3);
%>
以上有三种获取浏览器UA的ASP.NET的方法,使用任何一种即可。
标签: 浏览器
- 站长推荐