1. 程式人生 > 實用技巧 >第十章-BOM

第十章-BOM

BOM(Browser Object Model,瀏覽器物件模型)

題目:

  • 如何識別瀏覽器的型別?
  • 分析拆解url各個部分?

知識點:

  • navigator(瀏覽器資訊)
  • screen(螢幕尺寸資訊)
  • location(位址列資訊)
  • history(歷史資訊-前進/後退)
  1. 通過 navigator.userAgent 判斷瀏覽器的型別,判斷方法可參考這篇文章,判斷safari瀏覽器

谷歌瀏覽器測試:

火狐瀏覽器測試:

  1. 通過 screen.width screen.height 可以獲取當前螢幕的寬高。

  1. 通過 location 可以獲取瀏覽器位址列中的資訊
方法 描述
location.href 獲取當前頁面url地址
location.protocol 獲取協議
location.host 獲取主機/域名
location.pathname 獲取檔案路徑
location.search 獲取查詢引數
location.hash 獲取hash資訊,#及後面的資訊

  1. 通過 history.back() / history.forward() 可以實現瀏覽器的前進後退功能,效果同點擊左上角的箭頭。

---------------------------------上面為課程內容,下面為補充內容-----------------------------

BOM(Browser Object Model)是指瀏覽器物件模型,提供了獨立於內容的、可以與瀏覽器視窗進行互動的物件結構。BOM由多個物件組成,其中代表瀏覽器視窗的 window 物件是 BOM 的頂級物件,其他物件都是 window 物件的子物件。

BOM頂級物件 window

window是瀏覽器的頂級物件,當呼叫 window 下的屬性和方法時,可以省略 window,如前文獲取瀏覽器型別時完整寫法為:window.navigator.userAgent

注意:document 從屬於 window

onload事件

onload() 事件於頁面載入完成之後執行,作為JavaScript的入口函式,script 標籤寫在body 標籤之前是需要使用 onload 來作為入口函式,否則 script 標籤會阻塞頁面的載入。

定時器

setTimeout() 和 clearTimeout()

接受兩個引數:第一個引數為回撥函式(實現某一功能),第二個引數為 時間(毫秒數);在指定的毫秒數到達之後執行指定的函式,只執行一次。

// 建立一個定時器,1000毫秒後執行,返回定時器的標示
var timerId = setTimeout(function () {
  console.log('Hello World');
}, 1000);

// 取消定時器的執行
clearTimeout(timerId);

setInterval() 和 clearInterval()

定時呼叫,如果不停止或者清除會永遠執行下去。

// 建立一個定時器,每隔1秒呼叫一次
var timerId = setInterval(function () {
  var date = new Date();
  console.log(date.toLocaleTimeString());
}, 1000);

// 取消定時器的執行
clearInterval(timerId);
location 補充
    onload=function () {
      document.getElementById("btn").onclick=function () {
        //設定跳轉的頁面的地址
       //location.href="http://www.jd.com";//屬性
       //location.assign("http://www.jd.com");//方法
        //location.reload();//重新載入--重新整理
        //location.replace("http://www.jd.com");//沒有歷史記錄
      };
    };

參考文章:https://juejin.im/entry/5aabcfc7f265da239f07228f