最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

利用js跨页面保存变量做菜单的方法_导航菜单

来源:动视网 责编:小采 时间:2020-11-27 20:38:34
文档

利用js跨页面保存变量做菜单的方法_导航菜单

利用js跨页面保存变量做菜单的方法_导航菜单:最近公司在做一个项目,其中一块头部的菜单导航区,要求实现进入相关页面后上面的导航菜单图片也需变换.而这个对于静态页面或者用框架或iframe的来说是很容易实现的.而我们是利用include来包含进的这个top.asp.虽然可以在那个图片菜单上定义onclick
推荐度:
导读利用js跨页面保存变量做菜单的方法_导航菜单:最近公司在做一个项目,其中一块头部的菜单导航区,要求实现进入相关页面后上面的导航菜单图片也需变换.而这个对于静态页面或者用框架或iframe的来说是很容易实现的.而我们是利用include来包含进的这个top.asp.虽然可以在那个图片菜单上定义onclick
 最近公司在做一个项目,其中一块头部的菜单导航区,要求实现进入相关页面后上面的导航菜单图片也需变换.而这个对于静态页面或者用框架或iframe的来说是很容易实现的.而我们是利用include来包含进的这个top.asp.虽然可以在那个图片菜单上定义onclick的动作属性.但是只要一跳转页面,则这个onclick动作就没用了.因为top.asp被重新加载了.如果要解决这个问题,只能是在页面加载时能读取一个全局的变量,相对于浏览器的全局变量,通过这个变量的值来判断应该如何显示这个导航菜单.于是也便有了本文.

我想到的解决方法有两种:

1.利用cookies或session,在每个页面加载时写一个cookies或session变量,这个看似能很好的解决问题.但是却出现了一个问题.那就是如果用户禁止了cookies,则这个效果将无法实现,永远只是显示默认效果.所以我放弃这种做法

2.利用history或navigator来建立这么一个相对于浏览器的变量.只要我浏览器没关,则这个变量就会持续存在.这样就达到了我们想要的效果.我也是用这种方法来解决的.下面是具体实现部分.


function foc(){
document.getElementById("searchkey").focus();
} //这是做搜索时一个函数与本文无关

function init(){ //初始化函数
if (history.dmenu){}else
{
history.dmenu=1;
}

//如果history.dmenu没有定义则设置为1即显示首页按扭的效果
switch(history.dmenu){
case 1:
{
//alert(history.dmenu);
document.getElementById("d_id1").src="https://www.gxlcms.com/Uploads//images/anB1.gif";
document.getElementById("d_id2").src="https://www.gxlcms.com/Uploads//images/anB2.gif";
document.getElementById("d_id3").src="https://www.gxlcms.com/Uploads//images/anB3.gif";
document.getElementById("d_id4").src="https://www.gxlcms.com/Uploads//images/anB4.gif";
document.getElementById("d_id5").src="https://www.gxlcms.com/Uploads//images/anB5.gif";
document.getElementById("d_id6").src="https://www.gxlcms.com/Uploads//images/anB6.gif";
break;}
case 2:
{
//alert(history.dmenu);
document.getElementById("d_id1").src="https://www.gxlcms.com/images/anB11.gif";
document.getElementById("d_id2").src="https://www.gxlcms.com/images/anB22.gif";
document.getElementById("d_id3").src="https://www.gxlcms.com/Uploads//images/anB3.gif";
document.getElementById("d_id4").src="https://www.gxlcms.com/Uploads//images/anB4.gif";
document.getElementById("d_id5").src="https://www.gxlcms.com/Uploads//images/anB5.gif";
document.getElementById("d_id6").src="https://www.gxlcms.com/Uploads//images/anB6.gif";
break;
}
case 3:
{
document.getElementById("d_id1").src="https://www.gxlcms.com/images/anB11.gif";
document.getElementById("d_id2").src="https://www.gxlcms.com/Uploads//images/anB2.gif";
document.getElementById("d_id3").src="https://www.gxlcms.com/images/anB33.gif";
document.getElementById("d_id4").src="https://www.gxlcms.com/Uploads//images/anB4.gif";
document.getElementById("d_id5").src="https://www.gxlcms.com/Uploads//images/anB5.gif";
document.getElementById("d_id6").src="https://www.gxlcms.com/Uploads//images/anB6.gif";
break;
}
case 4:
{
document.getElementById("d_id1").src="https://www.gxlcms.com/images/anB11.gif";
document.getElementById("d_id2").src="https://www.gxlcms.com/Uploads//images/anB2.gif";
document.getElementById("d_id3").src="https://www.gxlcms.com/Uploads//images/anB3.gif";
document.getElementById("d_id4").src="https://www.gxlcms.com/images/anB44.gif";
document.getElementById("d_id5").src="https://www.gxlcms.com/Uploads//images/anB5.gif";
document.getElementById("d_id6").src="https://www.gxlcms.com/Uploads//images/anB6.gif";
break;
}
case 5:
{
document.getElementById("d_id1").src="https://www.gxlcms.com/images/anB11.gif";
document.getElementById("d_id2").src="https://www.gxlcms.com/Uploads//images/anB2.gif";
document.getElementById("d_id3").src="https://www.gxlcms.com/Uploads//images/anB3.gif";
document.getElementById("d_id4").src="https://www.gxlcms.com/Uploads//images/anB4.gif";
document.getElementById("d_id5").src="https://www.gxlcms.com/images/anB55.gif";
document.getElementById("d_id6").src="https://www.gxlcms.com/Uploads//images/anB6.gif";
break;
}
case 6:
{
document.getElementById("d_id1").src="https://www.gxlcms.com/images/anB11.gif";
document.getElementById("d_id2").src="https://www.gxlcms.com/Uploads//images/anB2.gif";
document.getElementById("d_id3").src="https://www.gxlcms.com/Uploads//images/anB3.gif";
document.getElementById("d_id4").src="https://www.gxlcms.com/Uploads//images/anB4.gif";
document.getElementById("d_id5").src="https://www.gxlcms.com/Uploads//images/anB5.gif";
document.getElementById("d_id6").src="https://www.gxlcms.com/images/anB66.gif";
break;
}
}
}
//上面是具体的判断那个变量然后据变量的值来进行图片的变换从而达到我们要的效果.


function menushow(d_id){

switch(d_id){
case 1:
history.dmenu=1;
break;
case 2:
history.dmenu=2;
break;
case 3:
history.dmenu=3;
break;
case 4:
history.dmenu=4;
break;
case 5:
history.dmenu=5;
break;
case 6:
history.dmenu=6;
break;
}
}
//按下相关图片按钮后设置history.dmenu为相应的值从而在页面加载时能根据这个值来进行图片的变换

//-->



















































站内搜索
公告 to trash cans, find the Public Utility Equipment new!


init(); //这里注意一定要写在这里,要不然这个初始化函数就会报错说找不到对像

这种的效果如下:

先看首页:

再看按下订单查看按钮后的效果:我用的触发脚本是在上面代码中的onclick="menushow(2)"即传递一个2做为实参,从而设置history.dmenu=2这样在页面刷新加载时就会判断出当前状态了.因为这个变量是相对于浏览器的.效果如下:

今天测试时发现了一个问题,得用上面写的方法时对IE不支持,在火狐上没有问题,所以对程序进行了下小修改.过程是这样的.对于IE浏览器使用session来判断,每按一个按钮时就写一个session("dmenu")为相应的值,然后把这个值写在页面的一个隐藏域里,然后在页面初始化时判断是使用的什么类型浏览器,如果是IE的就执行通过session来判断的函数,而这个session则是通过获取那个隐藏域里的值,而如果是非IE浏览器就运用上面我昨天写的也就是上面的init函数来进行.判断代码如下:


if(navigator.userAgent.indexOf("MSIE")>0){
init2();//是IE浏览器就执行这个
}else{
init();
//否则执行这个

}

如此一来就完美的解决了这个问题.也许有朋友会说用session就可以了,但经过我的实验是用session火狐的根本不认,我也不知道什么原因,所以只好用我这个方法了.如果你有好方法请告诉我.

文档

利用js跨页面保存变量做菜单的方法_导航菜单

利用js跨页面保存变量做菜单的方法_导航菜单:最近公司在做一个项目,其中一块头部的菜单导航区,要求实现进入相关页面后上面的导航菜单图片也需变换.而这个对于静态页面或者用框架或iframe的来说是很容易实现的.而我们是利用include来包含进的这个top.asp.虽然可以在那个图片菜单上定义onclick
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top