仿瀏覽器 前進 後退 重新整理

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.