五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > JS參數(shù)傳遞的實際應(yīng)用

JS參數(shù)傳遞的實際應(yīng)用

文章來源:365jz.com     點擊數(shù):817    更新時間:2009-09-13 10:48   參與評論

 在項目中,有一個Ajax加載的區(qū)域,是一個Div標(biāo)簽,id為msg_box,這個控制鏈接包含在一個左側(cè)的導(dǎo)航中,當(dāng)從其他頁面鏈接到這個頁面時,該JS代碼就失效了,原因很簡單,在DOM中沒有id為msg_box的div標(biāo)簽,該怎么解決這個問題呢?

方案:
在所有頁面公用的頭部文件header.tpl.html中寫入:
<script>
function changMenu(index){
    if(typeof getElementById("msg_box") == "object"){
         //如果存在msg_box對象 則刷新該頁的對象
         showMenu(index);
    }else{
         //如果不存在 則重定向到使用Ajax刷新的頁面
         window.location = "/index.html";
    }
}
</script>

但是該項目index.html存在四個相同性質(zhì)的頁面,都需要Ajax來刷新,這樣就存在一個問題,當(dāng)用戶點擊第三個欄目時,雖然可以回到index.html,但是無法刷新內(nèi)容到第三個欄目。這時有兩種解決方案:

方案1:
第一步:
在所有頁面公用的頭部文件header.tpl.html中寫入:
<script>
function changMenu(index){
    if(typeof getElementById("msg_box") == "object"){
         //如果存在msg_box對象 則刷新該頁的對象
         showMenu(index);
    }else{
         //如果不存在 則重定向到使用Ajax刷新的頁面
         window.location = "/index.html?type="+index;
    }
}
</script>
第二步:
改進(jìn)showMenu函數(shù)
function showMenu(index){
    if(typeof getElementById("msg_box") == "object"){
         //如果存在msg_box對象 則刷新該頁的對象
         ......
    }else{
         url = window.location.href;
         reg = /^(.*)\/index\.html\?type\=\d$/gi;
         if(reg.test(url)){
         //如果符合傳參數(shù)頁面的url。則獲取該參數(shù)
         index = url.substr(url.length - 1);
         ......
         }
    }
}

方案2:
調(diào)用JS的cookie功能傳遞參數(shù)
在所有頁面公用的頭部文件header.tpl.html中寫入:
<script>
function changMenu(){
    index = getCookie("index");
    if(index == null) index = 1;
    if(typeof getElementById("msg_box") == "object"){
         //如果存在msg_box對象 則刷新該頁的對象
         showMenu(index);
    }else{
         setCookie("index", index);
         //如果不存在 則重定向到使用Ajax刷新的頁面
         window.location = "/index.html";
    }
}

function setCookie(name, value){  
 var Then = new Date()  
 Then.setTime(Then.getTime() + 1*3600000 ) //小時  
 document.cookie = name+"="+value+";expires="+Then.toGMTString();  
}

function getCookie(name)
{
  var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  if(arr != null) return unescape(arr[2]); return null;
}
 
</script>

如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答?。?點擊進(jìn)入論壇

發(fā)表評論 (817人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號