前面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(".", "http://.");
var a = new RegExp("http://." + c + "$");
if (b.match(a)) {
return 2
} else {
return 0
}
}
}
}; 這樣在移動端就能正確瀏覽pc頁面了。
大部分的移動站都是自己做的,不是用百度siteapp實現,有的用戶可能不喜歡#fromapp這個后綴,我們可以做下修改,比如余斗的為#pc后綴,修改百度提供的uaredirect.js,將代碼中的fromapp 改成你要的標識即可,比如武林網的的pc:
現在在手機上只要訪問 http://m.survivalescaperooms.com#pc 就可以正常切換到電腦版了!
這個代碼修改后,在加載頁面時發現鏈接后面帶了指定參數時,就直接return,而不再進行UA判斷,避免再次跳轉的尷尬。
其實就是上一講把相關的跳轉路徑,修改成PC的路徑就可以了,是不是很簡單。