1. 程式人生 > 其它 >字首和以及差分

字首和以及差分

BOM 即 Browser Object Model(瀏覽器物件模型),瀏覽器模型提供了獨立於內容的、可以與瀏覽器視窗進行滑動的物件結構,就是瀏覽器提供的 API

BOM提供了獨立於內容 而與瀏覽器視窗進行互動的物件; 由於BOM主要用於管理視窗與視窗之間的通訊,因此其核心物件是window; BOM由一系列相關的物件構成,並且每個物件都提供了很多方法與屬性; BOM缺乏標準,JavaScript語法的標準化組織是ECMA,DOM的標準化組織是W3C,BOM最初是Netscape瀏覽器標準的一部分。

window物件是js中的頂級物件(全域性物件),所有定義在全域性作用域中的變數、函式都會變成window物件的屬性和方法,在呼叫的時候可以省略window。

  BOM>window>document>getElementById()

一、window物件

  三個彈框:不建議使用,會阻塞程式碼執行---僅接收純文字訊息

1             window.alert('警告框')
2             window.confirm('確認框')  if(isFlag){log(確認鍵)}else{log(取消鍵)}
3             window.prompt('請輸入一個數字') 輸入框 返回內容

  寬高表示:

        // 視窗的可視寬度和可視高度
        console.log(window.innerHeight);
        console.log(window.innerwidth);
        
// html的寬度和高度 console.log(document.documentElement.clientWidth); console.log(document.documentElement.clientHeight);

  視窗的開啟關閉移動:

open:URL,name,features,replace

1             // 開啟一個新視窗  _self在自己原本的視窗開啟頁面"_blank"在新視窗開啟頁面
2             // window.open("http://www.baidu.com","_self")
3             window.open("2.html","_blank","width:200;height:300")
4 // 關閉當前視窗 5 window.close() 6 // 把視窗移動到距離電腦顯示屏左上的座標 ie可用,火狐、谷歌不可用 7 window.moveTo(100,100) 8 // 重新調整瀏覽器視窗大小 ie可用,火狐、谷歌不可用 9 window.resizeTo(200,200)
屬性說明
alert() 系統警告對話方塊,接收字串引數並顯示
confirm() 系統確認對話方塊,可提供確認或取消兩種事件
prompt() 提示對話方塊,可對使用者展示確認、取消事件外,還可提供文字域
open() 可導航至特定的 url,又可開啟一個新的瀏覽器視窗window.open(要載入的url, 視窗目標, 一個特定字串, 一個新頁面是否取代瀏覽器歷史記錄中當前載入頁面的布林值)
onerror() 事件處理程式,當未捕獲的異常傳播到呼叫棧上時就會呼叫它,並把錯誤訊息輸出到瀏覽器的 JavaScript 控制上。window.onerror(描述錯誤的一條訊息, 字串--存放引發錯誤的JavaScript程式碼所在的文件url, 文件中發生錯誤的行數)
setTimeout() 超時呼叫——在指定的時間過後執行程式碼window.setTimeout(function(){...}, 毫秒)
setInterval() 間歇呼叫——每隔指定的時間就執行一次window.setInterval(function(){...}, 毫秒)

1、確認視窗位置及大小
獲取視窗位置的屬性與方法

屬性說明相容性
screenLeft 視窗相對於螢幕左邊的位置 適用於IE、Safari、Chrome
screenTop 視窗相對於螢幕上邊的位置 適用於IE、Safari、Chrome
screenX 視窗相對於螢幕左邊的位置 適用於Firefox
screenY 視窗相對於螢幕上邊的位置 適用於Firefox
moveBy(x,y) 接收的是在水平和垂直方向上移動的畫素數 全相容
moveTo(x,y) 接收的是新位置的x和y座標值 全相容

跨瀏覽器獲取視窗左邊和上邊位置

視窗大小屬性與方法

屬性說明
innerWidth
innerHeight
IE9+、Safari、Firefox、Opera: 該容器中頁面檢視區的大小
Chrome: 返回視口大小
移動裝置: 返回可見視口(即螢幕上可見頁面區域的大小)
移動IE瀏覽器: 不支援該屬性,當移動IE瀏覽器將佈局視口的資訊儲存至document.body.clientWidthdocument.body.clientHeight
outerWidth
outerHeight
IE9+、Safari、Firefox: 返回瀏覽器視窗本身的尺寸
Opera: 返回頁面檢視容器的大小
Chrome: 返回視口大小
resizeTo(width, height) 接收瀏覽器視窗的新寬度與新高度
resizeBy(width, height) 接收新視窗與原視窗的寬度與高度之差

二、navigator物件

  navigator:包含客戶端瀏覽器的資訊 主要用來檢測瀏覽器、檢測外掛

1         navigator.appCodeName //瀏覽器的程式碼名稱
2         navigator.appName   //返回瀏覽器的名稱
3         navigator.appVersion  // 返回瀏覽器的平臺和版本資訊 
4         navigator.language  // 返回瀏覽器的語言
5         navigator.onLine     // 返回指明系統是否處於離線狀態下的布林值
6         navigator.userAgent  // 運營商/瀏覽器的名稱
7         navigator.platform   //返回執行作業系統的平臺

三、location物件

  location:包含當前網頁的URL資訊 主要應用場景:

1、解析 url 查詢字串引數,並將其返回一個物件,可通過迴圈、正則來實現,方法有很多,實現的大體思路是:
通過locationsearch屬性來獲取當前 url 傳遞的引數,如果 url 中有查詢字串的話就將其問號擷取掉,然後再遍歷裡面的字串並以等號為斷點,使用decodeURIComponent()方法來解析其引數的具體數值,並將其放在物件容器中,並將其返回
2、載入新的文件,也可以說是重新整理頁面,主要有三個方法:

    • assign() location.assign("http://www.xxx.com")就可立即開啟新 url 並在瀏覽器是我歷史中生成一條新的記錄, 在一個生成了 5 條瀏覽記錄的頁面中,然後使用 assign()跳轉 url 後,history 記錄只剩兩條,一條是通過 assign 跳轉的頁面,另一條則是上一個頁面(使用 assign()跳轉方法的頁面),其餘的所有頁面都被清除掉了
    • replace(): location.replace("http://www.bbb.com")只接受 url 一個引數,通過跳轉到的 url 介面不會在瀏覽器中生成歷史記錄,就是 history 的 length 不會+1,但是會替代掉當前的頁面
    • reload(): 其作用是重新載入當前顯示的頁面,當不傳遞引數的時候,如果頁面自上次請求以來並沒有改變過,頁面就會從瀏覽器中重新載入,如果傳遞true,則會強制從伺服器重新載入
屬性名例子說明
hash " #host " 返回 url 中的 hash(#後字元>=0)
host " juejin.im:80 " 伺服器名稱+埠(如果有)
hostname " juejin.im " 只含伺服器名稱
href " https://juejin.im/book/5a7bfe... " 當前載入頁面的完整的 url
pathname " /book/5a7bfe595188257a7349b52a " 返回 url 的的目錄和(或)檔名
port " 8080 " url 的埠號,如果不存在則返回空
protocol " https: (or http:) " 頁面使用的協議
search " ?name=aha&age=20 " 返回 url 的查詢字串, 以問號開頭

四、history物件

  history:包含瀏覽器視窗訪問過的URL資訊 history 物件儲存著使用者上網的歷史記錄,從視窗被開啟的那一刻算起,history 物件是用視窗的瀏覽歷史用文件和文件狀態列表的形式表示。history 物件的 length 屬性表示瀏覽歷史列表中的元素數量,但出於安全考慮,指令碼不能訪問已儲存的 url

back() 後退一個頁面 go() 跳轉到指定頁面 forward() 前進一個頁面
  • History 物件的屬性及方法
屬性說明
go() 1、以在使用者的歷史記錄中任意跳轉,go(n)表示前進 n 頁, go(-n)表示後退 n 頁(n>0) 2、go()可以傳遞字串引數,瀏覽器歷史中如果有這條 url 則實現跳轉至包含該字串的第一個位置,否則什麼也不做
back() 後退一頁
forword() 前進一頁
length 儲存歷史記錄的數量,可用於檢測當前頁面是否是使用者歷史記錄的第一頁(history.length === 0)

五、screen物件

  screen:包含客戶端顯示屏的資訊 其提供有關視窗顯示的大小和可用的顏色輸入資訊。

六、document物件

  document:包含整個HTML文件,可悲用來訪問文件內容,及其所有的頁面元素