1. 程式人生 > 程式設計 >JavaScript的三種BOM物件

JavaScript的三種BOM物件

目錄
  • 一、location物件
    • 1、URL
    • 2、location 物件的屬性
  • 3、location 物件的方法
    • 二、navigator物件
      • 三、history物件
        • 總結

          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

          www.cppcns.com
          http://www.cppcns.com
          組成 說明
          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+'秒後跳轉'
                  www.cppcns.com        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||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()
              })
          DshUPxs    </script>
          </body>
          

          實現效果為:

          在這裡插入圖片描述

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

          總結

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