如何让网站在手机搜索的时候,进入手机页面,在PC端搜索时进入PC页面
我的移动端文件是在PC端文件主机里的一个文件夹内
你只需要使用一个入口文件就行,比如你打开手机希望进的是phone.html,电脑希望进的是computer.html,这个时候你只需要指定一个index.html 文件,在这个文件中只需要一个script标签,标签里面写上判断客户端和负责跳转页面的js就行了。
上面讲述了原理,下面我给你一个我之前写的入口文件给你参考:
<script> var config = ['http://computer.html', 'http://phone.html'] var modelToJudge = (function(cfg) { var userAgentInfo = navigator.userAgent; var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } }
window.location.href = flag ? cfg[0]: cfg[1]; return; })(config); </script>
config中配置的是你需要跳转的链接,第一个为电脑,第二个为手机
我这PC端是用asp写的,移动端是php 还有路径是不一样的 pc的早就已经上线,现在是也要上线移动端,我用php写好放在同主机下的phone上 所以对于你的这段代码好像不能用吧
@耐寂寞守繁华: 怎么不能用 都可以用的,只是一个入口文件而已,管你asp还是php
@好来污影后: 那入口文件用了index.html 那我的asp写的网页不是要同名了
@耐寂寞守繁华: 。。。名字不能改吗?我也是无奈了,多看看,多学学,多练练才会有进步,多动手做测试不要靠大脑盲调代码。
@好来污影后: 不能,除了js判断还有什么方法可以?
用js判断是手机浏览器访问还是pc浏览器访问 http://www.cnblogs.com/yuzhongwusan/archive/2012/09/03/2669022.html
<script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return {//移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器 iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部 }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() } document.writeln("语言版本: "+browser.language); document.writeln(" 是否为移动终端: "+browser.versions.mobile); document.writeln(" ios终端: "+browser.versions.ios); document.writeln(" android终端: "+browser.versions.android); document.writeln(" 是否为iPhone: "+browser.versions.iPhone); document.writeln(" 是否iPad: "+browser.versions.iPad); document.writeln(navigator.userAgent); </script>
下面简化的:
var yousite="m.snail.blue";//这里改为您的手机站访问地址不用带http:// var url=window.document.location.pathname; var site="http://"+yousite+url; //平台、设备和操作系统 var system ={ win : false, mac : false, xll : false }; //检测平台 var p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac = p.indexOf("Mac") == 0; system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); //跳转语句 if(system.win||system.mac||system.xll) {} else{ window.location.href=site;
我的移动端文件是在PC端文件主机里的一个文件夹内 PC端首页和移动端首页都要加吗?
@耐寂寞守繁华: 只需要入口判断就行了
@耐寂寞守繁华: 入口判断了再决定跳转 PC端首页还是 移动端首页
@抽象ID: 那要放在那个文件里?
@抽象ID: 除了js判断还有什么方法可以?
可以考虑用媒体查询
怎么用媒体?
@耐寂寞守繁华: 说错了,不着意思,可以根据js判断:
function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { window.location.href="你的手机版地址"; } else { window.location.href="你的电脑版地址"; } } goPAGE();
@与阳光握手言和: 那我想知道这端带代码放哪里? PC端和移动端首页都放 还是放别的地方
@耐寂寞守繁华: 如果嫌麻烦也可以自己写一个js获取屏幕宽,根据自己设定的值进行相应跳转。按理说在入口寄一个判断就可以了,但是为了防止用户直接用网址访问,最好分别添加
pc端放这个:
function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { window.location.href="你的手机版地址"; } goPAGE();
移动端放这个:
function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { return; } else { window.location.href="你的电脑版地址"; } } goPAGE();
@与阳光握手言和: 不能 我的pc端是用asp写的 移动端是Php写的 你的代码放进PC出现编码问题
除了js判断还有什么方法可以?