Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0) 1
点击次数:18 次 发布日期:2008-11-26 11:40:24 作者:源代码网
|
源代码网推荐 Ajax刚入门不久,便写了一个Ajax+C#的留言本程序,在实际写程序中,渐渐发现了Ajax程序许多不成熟的地方,其中比较典型的就是页面的前进、后退与标签问题,因为Ajax整个程序是采用无刷新与服务器进行交互,所以导致了大部分浏览器的前进后退的功能按钮失效,当然标签功能也失去了意义,如果用Ajax开发一个论坛的话,在堆积如山的帖子中必然有经典,但是我们在关闭浏览器后,就得重新从头开始寻找,这样实在是太痛苦了,所以为了弥补这个缺点,大家各出奇招,现在我向大家描述一下,在我的程序中,怎样实现这些功能。 源代码网推荐 源代码网推荐 我把实现功能的主要程序代码写在imitateHistory.js这个文件中 源代码网推荐 源代码网推荐 imitateHistory.js 源代码网推荐 1 //定义一个全局数组 源代码网推荐 2 var hashList = new Array(); 源代码网推荐 3 //定义一个全局变量,用来作为hash的编号 源代码网推荐 4 var hashNO = 0; 源代码网推荐 5 //初始化数组,将初次装载的页面的hash添加进数组 源代码网推荐 6 hashList[0] = window.location.hash.replace("#",""); 源代码网推荐 7 //将Hash填加到数组 源代码网推荐 8 function addHash(newHash) 源代码网推荐 9 { 源代码网推荐 10 //这个判断是检测是否在点击后退按钮后,再点击了新的链接 源代码网推荐 11 if(hashNO!=(hashList.length - 1)) 源代码网推荐 12 { 源代码网推荐 13 //删除此页标识以后的数组项 源代码网推荐 14 hashList.splice(hashNO+1,(hashList.length-(hashNO+1))); 源代码网推荐 15 } 源代码网推荐 16 hashList[hashList.length] = newHash; 源代码网推荐 17 //指向本页hash的编号 源代码网推荐 18 hashNO = hashList.length - 1; 源代码网推荐 19 //将Hash赋值给浏览器 源代码网推荐 20 makeHistory(newHash); 源代码网推荐 21 //根据浏览器的hash,加载数据 源代码网推荐 22 urlCode(); 源代码网推荐 23 checkLinkButton(); 源代码网推荐 24 } 源代码网推荐 25 //将Hash赋值给浏览器 源代码网推荐 26 function makeHistory(newHash) 源代码网推荐 27 { 源代码网推荐 28 window.location.hash = newHash; 源代码网推荐 29 } 源代码网推荐 30 //检测导航按钮状态(按钮是否可用) 源代码网推荐 31 function checkLinkButton() 源代码网推荐 32 { 源代码网推荐 33 if(hashList.length>1) 源代码网推荐 34 { 源代码网推荐 35 if(hashNO>0) 源代码网推荐 36 { 源代码网推荐 37 document.getElementById("Back").disabled=""; 源代码网推荐 38 } 源代码网推荐 39 else 源代码网推荐 40 { 源代码网推荐 41 document.getElementById("Back").disabled="disabled"; 源代码网推荐 42 } 源代码网推荐 43 if(hashNO<(hashList.length-1)) 源代码网推荐 44 { 源代码网推荐 45 document.getElementById("Next").disabled=""; 源代码网推荐 46 } 源代码网推荐 47 else 源代码网推荐 48 { 源代码网推荐 49 document.getElementById("Next").disabled="disabled"; 源代码网推荐 50 } 源代码网推荐 51 } 源代码网推荐 52 } 源代码网推荐 53 //后退按钮onclick事件 源代码网推荐 54 function linkBack() 源代码网推荐 55 { 源代码网推荐 56 hashNO = hashNO - 1; 源代码网推荐 57 makeHistory(hashList[hashNO]); 源代码网推荐 58 //根据浏览器的hash,加载数据 源代码网推荐 59 urlCode(); 源代码网推荐 60 checkLinkButton(); 源代码网推荐 61 } 源代码网推荐 62 //前进按钮onclick事件 源代码网推荐 63 function linkNext() 源代码网推荐 64 { 源代码网推荐 65 hashNO = hashNO + 1; 源代码网推荐 66 makeHistory(hashList[hashNO]); 源代码网推荐 67 //根据浏览器的hash,加载数据 源代码网推荐 68 urlCode(); 源代码网推荐 69 checkLinkButton(); 源代码网推荐 70 } 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
