1. 程式人生 > >dedecms織夢繫統移動端適配教程(JS跳轉方法)

dedecms織夢繫統移動端適配教程(JS跳轉方法)

關於移動適配,很多人會選擇在百度站長工具後臺提交適配規則,不過這樣處理對於其他搜尋引擎無效,我的處理方法就是,在提交適配規則的基礎上同時也做一下JS跳轉適配。
之前發現很多站點全部頁面都JS跳轉到移動站首頁,這樣處理對於搜尋引擎是很不友好的。其實只要改下程式碼,很容易實現一對一頁面的JS跳轉,每個PC站頁面用移動端開啟都會跳轉到對應的移動站頁面。
有人會問,只做JS跳轉適配到底有沒有效?我測試的結果是有效,搜尋引擎完全是可以識別JS和對應的網址路徑的,我之前測試的幾個站,並沒有在百度站長工具後臺提交適配規則,只做了JS跳轉適配,一段時間以後,在移動端搜尋相應的關鍵詞,無論是首頁還是內頁都展示成移動網址,使用者直接點進去的就是移動站。不過生效需要的時間比提交適配規則要慢一點。

<!--首頁:-->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta http-equiv="Cache-Control" content="no-transform" />
<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/js/uaredirect.js"></script>
<script type="text/javascript">uaredirect("http://localhost");</script>

<!--欄目頁:-->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta http-equiv="Cache-Control" content="no-transform" />
<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/js/uaredirect.js"></script>
<script type="text/javascript">uaredirect("http://localhost/categroy/{dede:field.id/}.html");</script>

<!--文章頁:-->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta http-equiv="Cache-Control" content="no-transform" />
<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/js/uaredirect.js"></script>
<script type="text/javascript">uaredirect("http://localhost/view/{dede:field.id/}.html");</script>

說明:

1、將上述程式碼分別放到織夢網站模板的首頁、欄目頁、文章頁的head區域;
2、把uaredirect.js上傳到網站根目錄的js資料夾下;
3、把m.baidu.com換成你的移動站網址;
4、前兩行程式碼是避免被轉碼,可自由選擇加不加;
5、把修改後的模板上傳到伺服器,登入網站後臺全站生成一遍,這樣PC站和手機站就實現了一對一跳轉適配。


uaredirect.js檔案(將此檔案儲存成js檔案)

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("fromapp")){if((navigator.userAgent.match(/(iPhone|iPod|ipad|Android|mobile|blackberry|webos|incognito|webmate|bada|nokia|lg|ucweb|ios|skyfire)/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}}}};