源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-06-22 12:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JS 参数传递的实际应用代码分析
原因很简单,在DOM中没有id为msg_box的div标签,该怎么解决这个问题呢? 方案: 在所有页面公用的头部文件header.tpl.html中写入:
[u]复制代码[/u] 代码如下:
<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中写入:
[u]复制代码[/u] 代码如下:
<script> function changMenu(index){ if(typeof getElementById("msg_box") == "object"){ //如果存在msg_box对象 则刷新该页的对象 showMenu(index); }else{ //如果不存在 则重定向到使用Ajax刷新的页面 window.location = "/index.html?type="+index; } } </script>
第二步: 改进showMenu函数
[u]复制代码[/u] 代码如下:
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中写入:
[u]复制代码[/u] 代码如下:
<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>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部