仿浏览器 前进 后退 刷新

来源:岁月联盟 编辑:exp 时间:2012-07-06

描述:利用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>

作者:WuWenji_ZhaoLinQing