JS 参数传递的实际应用代码分析
JS 参数传递的实际应用代码分析
发布时间:2016-12-30 来源:查字典编辑
摘要:原因很简单,在DOM中没有id为msg_box的div标签,该怎么解决这个问题呢?方案:在所有页面公用的头部文件header.tpl.htm...

原因很简单,在DOM中没有id为msg_box的div标签,该怎么解决这个问题呢?

方案:

在所有页面公用的头部文件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存在四个相同性质的页面,都需要Ajax来刷新,这样就存在一个问题,当用户点击第三个栏目时,虽然可以回到index.html,但是无法刷新内容到第三个栏目。这时有两种解决方案:

方案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>

第二步:

改进showMenu函数

复制代码 代码如下:

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)){

//如果符合传参数页面的url。则获取该参数

index = url.substr(url.length - 1);

......

}

}

}

方案2:

调用JS的cookie功能传递参数

在所有页面公用的头部文件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>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类