技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

JS/PHP/ASP.NET实现手机打开PC网页后自动跳到手机网页

作者:admin    时间:2014-9-11 10:36:26    浏览:

用手机打开PC网页,会有诸多的不便,由于手机屏幕太小,所以网页缩小后字体也相应缩小,要放大才可以看清,但放大后网页又超出了手机的屏幕宽度,需要手动来左右拖动网页,操作起来相当麻烦。为了顾及手机用户的体验,网页手机版顺应而出,目前已有一些工具可以自动把网站生成手机网页了。

 手机打开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的方法,使用任何一种即可。

标签: 浏览器  
相关文章
    x
    • 站长推荐
    /* 左侧显示文章内容目录 */