zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JS参数传递的实际应用代码分析

JS应用代码 分析 实际 参数传递
2023-06-13 09:14:12 时间
原因很简单,在DOM中没有id为msg_box的div标签,该怎么解决这个问题呢?
方案:
在所有页面公用的头部文件header.tpl.html中写入:
复制代码代码如下:

<script>
functionchangMenu(index){
if(typeofgetElementById("msg_box")=="object"){
//如果存在msg_box对象则刷新该页的对象
showMenu(index);
}else{
//如果不存在则重定向到使用Ajax刷新的页面
window.location="/index.html";
}
}
</script>

但是该项目index.html存在四个相同性质的页面,都需要Ajax来刷新,这样就存在一个问题,当用户点击第三个栏目时,虽然可以回到index.html,但是无法刷新内容到第三个栏目。这时有两种解决方案:
方案1:
第一步:
在所有页面公用的头部文件header.tpl.html中写入:
复制代码代码如下:

<script>
functionchangMenu(index){
if(typeofgetElementById("msg_box")=="object"){
//如果存在msg_box对象则刷新该页的对象
showMenu(index);
}else{
//如果不存在则重定向到使用Ajax刷新的页面
window.location="/index.html?type="+index;
}
}
</script>

第二步:
改进showMenu函数
复制代码代码如下:
functionshowMenu(index){
if(typeofgetElementById("msg_box")=="object"){
//如果存在msg_box对象则刷新该页的对象
......
}else{
url=window.location.href;
reg=/^(.*)\/index\.html\?type\=\d$/gi;
if(reg.test(url)){
//如果符合传参数页面的url。则获取该参数
index=url.substr(url.length-1);
......
}
}
}

方案2:
调用JS的cookie功能传递参数
在所有页面公用的头部文件header.tpl.html中写入:
复制代码代码如下:
<script>
functionchangMenu(){
index=getCookie("index");
if(index==null)index=1;
if(typeofgetElementById("msg_box")=="object"){
//如果存在msg_box对象则刷新该页的对象
showMenu(index);
}else{
setCookie("index",index);
//如果不存在则重定向到使用Ajax刷新的页面
window.location="/index.html";
}
}
functionsetCookie(name,value){  
 varThen=newDate()  
 Then.setTime(Then.getTime()+1*3600000)//小时  
 document.cookie=name+"="+value+";expires="+Then.toGMTString();  
}
functiongetCookie(name)
{
vararr=document.cookie.match(newRegExp("(^|)"+name+"=([^;]*)(;|$)"));
if(arr!=null)returnunescape(arr[2]);returnnull;
}
 
</script>