很早就知道百度可以用电脑和手机访问同一个地址,但是网站会自动根据使用的上网终端选择跳转到不同的页面。
曾经试着用JS去判断,但是JS只是浏览器脚本,似乎没有这么强大的功能去获取电脑和手机各种不同浏览器的有效参数,而且一些低端手机干脆就不支持JS,所以还是要用更高级的语言来处理。由于本站是ASP的空间,就用下面的代码做跳转,个人感觉相对靠谱一些。PHP或者JSP也可以尝试这一思路。
<%
if instr(Request.ServerVariables("http_accept"),"wap")>0 then
response.redirect("*.wml") 'wap页地址
response.end
else
response.redirect("*.html") 'pc页地址
response.end
end if
%>
改代码的实现方式是通过判断HTTP_ACCEPT,即客户机应用系统通知服务器它所能接受的MIME类型,更加高深的我也不懂,就不在这里乱说了,呵呵。HTTP_ACCEPT非常复杂,对于一般的不支持html的浏览器,只要判断浏览器支持wml并且不支持html就可以了,但如果浏览器同时支持wml和html就不太可靠了。相对低端手机会将wml放到html的前面,但是很多高端手机或者智能手机对html的支持很好,所以html也会出现在wml前面。不过,既然手机高端到可以像电脑一样支持html,支持JS、Flash等等,那就让它查看网站的主页面好了。
另外,还有人提到用来访IP或者JS判断屏幕窗口大小,我没有尝试,不知道是否可取。
2 Comments
0 0唉~这个有点高深了。我开始迷茫状态~
不过除了用手机上QQ外,很少用手机浏览网页
呵呵,我只是喜欢研究点东西而已。
不过我发现,跳转虽然做好了,但是要做一个WAP页更加复杂,什么WML、WAP2.0、WCSS,头都大了。我的WAP首页其实还是html的,只是尺寸什么的适合手机。
不知道哪些手机不支持,估计那些不支持的手机已经淘汰了吧,嘿嘿~倒是写了个WML页,不够暂时用不到,也只有我自己看自己的WAP页,所以就以我的手机为标准吧,哈哈~