仿浏览器 前进 后退 刷新

描述:利用js脚本的Array集合实现,挺实用,特别是在自己做框架的时候<script>
     function goUrl(urlItem,obj)
     {      
         var HpageIndex = 0; // 定义存储URL地址集合的最大索引     
         var HpageLength = 0; // 定存储URL地址集合的长度       
         var HpageUrl = new Array(); // 定义存储URL地址的集合     
         HpageIndex = parent.window.pageIndex; // 获取URL地址集合的最大索引,(父级页面的全局变量)
         HpageLength = parent.window.pageLength; // 获取URL地址集合的总长度,(父级页面的全局变量)
         HpageUrl = parent.window.pageUrl; // 获取URL地址集合,(父级页面的全局变量)
         var urlPath = parent.document.getElementById( 'mainFrame' ).src; // 获取主框架当前访问的页面,(主框架MainFrame的src所指定页面地址)
         /// 刷新事件的判断
         if (urlItem == '' && obj == '' )
         {          
             urlPath = parent.document.getElementById( 'mainFrame' ).src; // 为了避免异常,在这里重新获取一次 主框架当前访问的页面           
             parent.document.getElementById( 'mainFrame' ).src = urlPath; // 设置主框架当前要访问的页面
         }
         /// 首页事件处理
         else if (urlItem == '0' && obj == '0' )
         {          
             urlPath = HpageUrl[0]; // 获取集合中第一项值(页面加载时存储进去的首页,也可以自己定义)
             parent.document.getElementById( 'mainFrame' ).src = urlPath; // 设置主框架当前要访问的页面
         }
         /// 页面访问历史 后退事件处理
         else if (urlItem == '-1' && obj == '-1' )
         {
             // 判断URL地址集合(全局是变量)是否为空
             if (parent.window.pageUrl != null ){
                 // 判断集合的长度是否为1,是则表示访问历史为1
                 if (parent.window.pageUrl.length == 1)
                     urlPath = parent.window.pageUrl[0];
                 // 判断集合长度是否大于1,是则循环判断访问历史
                 else if (parent.window.pageUrl.length > 1){
                     // 循环访问历史地址集合
                     for ( var i = 0; i < HpageUrl.length; i++ ){
                         // 判断是否等于当前正在访问的页面地址
                         if (urlPath==HpageUrl[i])
                         {
                             // 判断是否后退到第一个, 是则直接取第一个地址
                             if ((i-1) <= 0)
                             {
                                 urlPath = HpageUrl[0];
                                 break ;
                             }
                             else
                             {                              
                                 urlPath = HpageUrl[i-1]; // 获取当前访问地址相等的上一个访问地址记录
                                 break ;
                             }
                         }
                     }
                 }
             }          
             if (urlPath == '' ) // 判断历史访问记录地址是否为空,空则返回主框架当前地址
                 urlPath = parent.document.getElementById( 'mainFrame' ).src;         
             parent.document.getElementById( 'mainFrame' ).src = urlPath; // 设置主框架当前要访问的页面
         }
         // 页面访问历史 前进事件处理
         else if (urlItem == '1' && obj == '1' )
         {
             // 判断URL地址集合(全局是变量)是否为空
             if (parent.window.pageUrl != null ){
                 // 判断集合的长度是否为1,是则表示访问历史为1
                 if (parent.window.pageUrl.length == 1)
                     urlPath = parent.window.pageUrl[0];
                 // 判断集合长度是否大于1,是则循环判断访问历史
                 else if (parent.window.pageUrl.length > 1){
                     // 循环访问历史地址集合
                     for ( var i = 0; i < HpageUrl.length; i++ ){
                         // 判断是否等于当前正在访问的页面地址
                         if (urlPath==HpageUrl[i])
                         {
                             // 判断是否前进到最后一个, 是则直接取最后一个地址
                             if ((i+1) >= parent.window.pageUrl.length)
                             {
                                 urlPath = HpageUrl[i];
                                 break ;
                             }
                             else
                             {                              
                                 urlPath = HpageUrl[i+1]; // 获取当前访问地址相等的下一个访问地址记录
                                 break ;
                             }
                         }
                     }
                 }
             }          
             if (urlPath == '' ) // 判断历史访问记录地址是否为空,空则返回主框架当前地址
                 urlPath = parent.document.getElementById( 'mainFrame' ).src;         
             parent.document.getElementById( 'mainFrame' ).src = urlPath; // 设置主框架当前要访问的页面
         }
         else
         {
             urlPath = "Default.aspx?" +urlItem; // 设置事件传递的要访问的页面地址
             parent.document.getElementById( 'mainFrame' ).src = urlPath; // 设置主框架当前要访问的页面
             urlPath = parent.document.getElementById( 'mainFrame' ).src; // 重新获取主框架当前要访问的页面
             HpageUrl[HpageIndex + 1] = urlPath; // 将当前访问的页面地址加入到页面临时URL的地址集合
             parent.window.pageIndex = HpageIndex + 1; // 设置全局最大索引
             parent.window.pageLength = HpageLength + 1; // 设置全局集合的长度
             parent.window.pageUrl = HpageUrl; // 设置全局集合数据
             //alert('当前访问:' + urlPath + '  pageUrl.Length:' + HpageUrl.length,+'');
         }
     }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值