最近給客戶部署了一套織夢的網(wǎng)站源碼,由于要求手機(jī)端和PC端同步,所以就對移動端進(jìn)行了適配。但是由于織夢移動端的模板代碼是生成在m文件夾下,而對移動端又綁定了相應(yīng)的二級域名。所以造成了,網(wǎng)站在收錄的時候,收錄了m文件下的html頁面,但是當(dāng)在電腦端查看收錄頁面時,會發(fā)現(xiàn)有很多m路徑下的收錄頁面,當(dāng)訪問的時候,打開的是移動網(wǎng)站的頁面,這樣對用戶體驗(yàn)不好,所以需要做相應(yīng)的跳轉(zhuǎn),以下的解決方法是建立在PC端是靜態(tài)頁面、而移動端是動態(tài)調(diào)用的基礎(chǔ)之上,如果移動端頁是靜態(tài)頁面,請自行查找解決辦法。
移動端首頁跳轉(zhuǎn)至PC端首頁的代碼:
<script type="text/javascript"> /*判斷手機(jī)端訪問*/ var isMobile = { Android:function(){ return navigator.userAgent.match(/Android/i) ? true:false; }, BlackBerry:function(){ return navigator.userAgent.match(/BlackBerry/i) ? true:false; }, iOS:function(){ return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true:false; }, Windows:function(){ return navigator.userAgent.match(/IEMobile/i) ? true:false; }, any:function(){ return (isMobile.Android()||isMobile.BlackBerry() ||isMobile.iOS()||isMobile.Windows()); } }; if(!isMobile.any()) { window.location.href = "PC端網(wǎng)址"; } </script>
移動端文章頁面跳轉(zhuǎn)至PC端代碼:
<script type="text/javascript"> /*判斷手機(jī)端訪問*/ var isMobile = { Android:function(){ return navigator.userAgent.match(/Android/i) ? true:false; }, BlackBerry:function(){ return navigator.userAgent.match(/BlackBerry/i) ? true:false; }, iOS:function(){ return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true:false; }, Windows:function(){ return navigator.userAgent.match(/IEMobile/i) ? true:false; }, any:function(){ return (isMobile.Android()||isMobile.BlackBerry() || isMobile.iOS()||isMobile.Windows()); } }; if(!isMobile.any()) { window.location.href = "{dede:field.id runphp='yes'} $id=@me;@me='';$url=GetOneArchive($id); @me=$url['arcurl'];{/dede:field.id}"; } </script>
移動端列表頁面跳轉(zhuǎn)至PC端代碼:
把以下代碼加到 /include/helpers/extend.helper.php 文件最后。
if ( ! function_exists('itemCurUrl')) { /** * 獲取當(dāng)前列表頁或內(nèi)容頁的URL * 未經(jīng)大量測試,一定會有不如意的地方,使用時注意測試觀察 * * 列表頁使用方法: * dede:field.id runphp='yes'}@me=itemCurUrl(@me,'list'); {/dede:field.id} * 內(nèi)容頁使用方法: * dede:field.id runphp='yes'}@me=itemCurUrl(@me,'view'); {/dede:field.id} * * @param int $id 列表ID或文章ID * @param string $type 分類,list:列表頁,view:內(nèi)容頁 * @return string */ function itemCurUrl($id, $type='list') { global $dsql; if($type == 'list'){ $sql="SELECT * FROM `dede_arctype` WHERE `id`='$id' "; $info=$dsql->GetOne($sql); $url=GetOneTypeUrlA($info); return $url; }else{ $arr = GetOneArchive($id); if(!empty($arr['ismake'])){ // 靜態(tài)頁面 return $arr['arcurl']; }else{ // 動態(tài)頁面 return '/plus/view.php?aid='.$arr['aid']; } } } }
然后在列表頁的head部分加入以下代碼:
<script type="text/javascript"> /*判斷手機(jī)端訪問*/ var isMobile = { Android: function () { return navigator.userAgent.match(/Android/i) ? true:false; }, BlackBerry:function(){ return navigator.userAgent.match(/BlackBerry/i) ? true:false; }, iOS:function(){ return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true:false; }, Windows:function(){ return navigator.userAgent.match(/IEMobile/i) ? true:false; }, any:function(){ return (isMobile.Android()||isMobile.BlackBerry() || isMobile.iOS()||isMobile.Windows()); } }; if (!isMobile.any()) { window.location.href = "{dede:field.id runphp='yes'} @me=itemCurUrl(@me,'list');{/dede:field.id}" } </script>
以上代碼由本站親自測試,可正常運(yùn)行。