JavaScript的三種BOM對象

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

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

一、location對象

1、URL

統一資源定位符 (Uniform Resource Locator, URL) 是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的 URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。

URL的一般語法格式為:

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

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

2、location 對象的屬性

在這裡插入圖片描述

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

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

在這裡插入圖片描述

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

在這裡插入圖片描述

比如我們現在做一個點擊按鈕跳轉頁面的效果:

<body>
    <button>跳轉</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+'秒後跳轉'
                timer--;
           }
        },1000);
       
    </script>
</body>

運行結果為:

在這裡插入圖片描述

3、location 對象的方法

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

例如,我們也可以通過使用location對象方法來實現跳轉頁面:

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

在這裡插入圖片描述

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

二、navigator對象

navigator 對象包含有關瀏覽器的信息,它有很多屬性,我們最常用的是 userAgent,該屬性可以返回由客戶機發送服務器的 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 = "";     //手機
 } else {
    window.location.href = "";     //電腦
 }

三、history對象

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

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

index.html

<body>
    <a href="list.html">去到列表頁面</a>
    <button>前進</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>

實現效果為:

在這裡插入圖片描述

或者我們也可以使用history.go(1)實現前進功能;用history.go(1)實現後退功能。

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: