溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript的三種BOM對象分別是怎樣的

發(fā)布時間:2021-12-08 11:41:08 來源:億速云 閱讀:131 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)JavaScript的三種BOM對象分別是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

    window 對象給我們提供了一個 location 屬性用于獲取或設(shè)置窗體的 URL,并且可以用于解析 URL 。 因為這個屬性返回的是一個對象,所以我們將這個屬性也稱為 location 對象。

    接下來我們就具體的看一下。

    一、location對象

    1、URL

    統(tǒng)一資源定位符 (Uniform Resource Locator, URL) 是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。互聯(lián)網(wǎng)上的每個文件都有一個唯一的 URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。

    URL的一般語法格式為:

    protocol://host[:port]/path/[?query]#fragment
    http://www.itcast.cn/index.html?name=andy&age=18#link

    組成說明
    protocol通信協(xié)議,常用的http,ftp,maito等
    host主機(jī)(域名)
    port端口號可選,省略時使用方案的默認(rèn)端口,如http的默認(rèn)端口為80
    path路徑,由零個或多個‘/'符號隔開的字符串,一般用來表示主機(jī)上的一個目錄或文件地址
    query參數(shù) 以鍵值對的形式,通過&符號分隔開來
    fragment片段 #后面內(nèi)容 常見于鏈接,錨點

    2、location 對象的屬性

    JavaScript的三種BOM對象分別是怎樣的

    我們可以通過這些屬性得到地址欄中對應(yīng)的信息,舉個例子:

    比如:在csdn首頁,打開我們的開發(fā)者工具–>控制臺,輸入location,就會出現(xiàn)location對象的很多屬性和返回值:

    JavaScript的三種BOM對象分別是怎樣的

    或者我們直接在控制臺輸入對應(yīng)的屬性,就可以拿到對應(yīng)的返回值。

    JavaScript的三種BOM對象分別是怎樣的

    比如我們現(xiàn)在做一個點擊按鈕跳轉(zhuǎn)頁面的效果:

    <body>
        <button>跳轉(zhuǎn)</button>
        <div></div>
        <script>
            var btn = document.querySelector('button');
            var div = document.querySelector('div');
            var timer = 5;
            btn.addEventListener('click',function(){
               time()
            })
    
           var time = setInterval(function(){
                if(timer == 0) {
                    this.location.href = 'https://www.baidu.com'
                }
               else{
                    div.innerHTML = '頁面將在'+timer+'秒后跳轉(zhuǎn)'
                    timer--;
               }
            },1000);
           
        </script>
    </body>

    運(yùn)行結(jié)果為:

    JavaScript的三種BOM對象分別是怎樣的

    3、location 對象的方法

    location對象方法返回值
    location.assign()跟href一樣,可以跳轉(zhuǎn)頁面(也稱為重定向頁面)
    location.replace()替換當(dāng)前頁面,因為不記錄歷史,所以不能后退頁面
    location.reload()重新加載頁面,相當(dāng)于刷新按鈕或者f5 如果參數(shù)為true 強(qiáng)制刷新 ctrl+f5

    例如,我們也可以通過使用location對象方法來實現(xiàn)跳轉(zhuǎn)頁面:

     <button>點擊跳轉(zhuǎn)</button>
        <script>
            var btn = document.querySelector('button');
            btn.addEventListener('click',function(){
                location.assign('https://www.baidu.com')
            })
        </script>

    JavaScript的三種BOM對象分別是怎樣的

    location.assign() 這種方法實現(xiàn)的跳轉(zhuǎn)是可以后退頁面,但是 location.replace() 因為不記錄歷史,所以不能后退頁面。

    二、navigator對象

    navigator 對象包含有關(guān)瀏覽器的信息,它有很多屬性,我們最常用的是 userAgent,該屬性可以返回由客戶機(jī)發(fā)送服務(wù)器的 user-agent 頭部的值。

    if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
        window.location.href = "";     //手機(jī)
     } else {
        window.location.href = "";     //電腦
     }

    三、history對象

    history對象方法作用
    back()可以后退功能
    forward()前進(jìn)功能
    go(參數(shù))前進(jìn)后退功能 參數(shù)如果是1,前進(jìn)一個頁面 如果是-1 后退一個頁面

    比如我們現(xiàn)在有連個頁面,想要通過一個按鈕實現(xiàn)前進(jìn)后退功能,可以分別給兩個頁面的按鈕綁定forward方法和history方法,如下所示:

    index.html

    <body>
        <a href="list.html">去到列表頁面</a>
        <button>前進(jìn)</button>
        <script>
            var btn = document.querySelector('button');
            btn.addEventListener('click',function(){
                history.forward()
            })
        </script>
    </body>

    list.html

    <body>
        <a href="index.html">返回主頁面</a>
        <button>后退</button>
        <script>
            var btn = document.querySelector('button');
        btn.addEventListener('click',function(){
            history.back()
        })
        </script>
    </body>

    實現(xiàn)效果為:

    JavaScript的三種BOM對象分別是怎樣的

    或者我們也可以使用history.go(1)實現(xiàn)前進(jìn)功能;用history.go(1)實現(xiàn)后退功能。

    關(guān)于JavaScript的三種BOM對象分別是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI