前面361源码网给大家简单讲了《DedeCMS移动端访问pc网址自动跳转代码》时,主要讲的是当我们使用手机IPAD等移动端设备访问我们的PC站点的时候,判断访问是何种设备而进行的跳转。
后来有读者问如果用电脑访问移动端网页或者网站,如果实现让电脑访问的移动页面跳转到对应的PC站站点页面内容呢?
下面361源码网就再抽点时间和大家简单的做下介绍和说明:
这是因为我们在移动页面底部添加了电脑版的锚文本链接,搜索引擎在抓取之后并识别就会以这样的方式呈现出来,用户体验很好,但是如果我们做了移动端访问跳转,直接输入pc域名是不会看到真正的pc页面的,此时,百度跳转文件uaredirect.js中自带的中断机制就发挥作用。在需要正确预览的pc页面链接后加参数#fromapp,如余斗的:
// JavaScript Document
function uaredirect(f) {
try {
if (document.getElementById("bdmark") != null) {
return
}
var b = false;
if (arguments[1]) {
var e = window.location.host;
var a = window.location.href;
if (isSubdomain(arguments[1], e) == 1) {
f = f + "/#m/" + a;
b = true
} else {
if (isSubdomain(arguments[1], e) == 2) {
f = f + "/#m/" + a;
b = true
} else {
f = a;
b = false
}
}
} else {
b = true
}
if (b) {
var c = window.location.hash;
if (!c.match("pc")) {
if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))) {
location.replace(f)
}
}
}
} catch(d) {}
}
function isSubdomain(c, d) {
this.getdomain = function(f) {
var e = f.indexOf("://");
if (e > 0) {
var h = f.substr(e + 3)
} else {
var h = f
}
var g = /^www/./;
if (g.test(h)) {
h = h.substr(4)
}
return h
};
if (c == d) {
return 1
} else {
var c = this.getdomain(c);
var b = this.getdomain(d);
if (c == b) {
return 1
} else {
c = c.replace(".", "//.");
var a = new RegExp("//." + c + "$");
if (b.match(a)) {
return 2
} else {
return 0
}
}
}
}; 这样在移动端就能正确浏览pc页面了。
大部分的移动站都是自己做的,不是用百度siteapp实现,有的用户可能不喜欢#fromapp这个后缀,我们可以做下修改,比如余斗的为#pc后缀,修改百度提供的uaredirect.js,将代码中的fromapp 改成你要的标识即可,比如武林网的的pc:
现在在手机上只要访问 http://www.vevb.com#pc 就可以正常切换到电脑版了!
这个代码修改后,在加载页面时发现链接后面带了指定参数时,就直接return,而不再进行UA判断,避免再次跳转的尴尬。
其实就是上一讲把相关的跳转路径,修改成PC的路径就可以了,是不是很简单。