BOM的介紹
JavaScript基礎分爲三個部分:javascript
-
BOM:瀏覽器對象模型,操做瀏覽器部分功能的API。好比讓瀏覽器自動滾動。linux
什麼是BOM
BOM:Browser Object Model,瀏覽器對象模型。瀏覽器
BOM的結構圖:框架
從上圖也能夠看出:異步
-
window對象是BOM的頂層(核心)對象,全部對象都是經過它延伸出來的,也能夠稱爲window的子對象。ide
-
DOM是BOM的一部分。函數
window對象:post
-
window對象是JavaScript中的頂級對象。
-
全局變量、自定義函數也是window對象的屬性和方法。
-
window對象下的屬性和方法調用時,能夠省略window。
BOM 的常見內置方法和內置對象
window對象
彈出系統對話框
好比說,alert(1)
是window.alert(1)
的簡寫,由於它是window的子方法。系統對話框有三種:
alert(); //不一樣瀏覽器中的外觀是不同的 confirm(); //兼容很差 prompt(); //不推薦使用
打開窗口、關閉窗口
一、打開窗口:
window.open(url,target) //url:要打開的地址。 //target:新窗口的位置。能夠是:_blank 、_self、 _parent 父框架。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!--行間的js中的open() window不能省略--> <button onclick="window.open('https://www.luffycity.com/')">路飛學城</button> <button>打開百度</button> <button onclick="window.close()">關閉</button> <button>關閉</button> </body> <script type="text/javascript"> var oBtn = document.getElementsByTagName('button')[1]; var closeBtn = document.getElementsByTagName('button')[3]; oBtn.onclick = function(){ //open('https://www.baidu.com') //打開空白頁面 open('about:blank',"_self") } closeBtn.onclick = function(){ if(confirm("是否關閉?")){ close(); } } </script> </html>
二、關閉窗口:
window.close() - 關閉當前窗口 (只能關閉用js的window.open()打開的頁面,瞭解一下就好了)
獲取窗口寬高
window.innerHeight - 瀏覽器窗口的內部高度
window.innerWidth - 瀏覽器窗口的內部寬度
定時器
在js中的定時器分兩種:一、setTimeout() 二、setInterval()
setTimeOut()
只在指定時間後執行一次
/定時器 異步運行
function hello(){
alert("hello"); } //使用方法名字執行方法 var t1 = window.setTimeout(hello,1000); var t2 = window.setTimeout("hello()",3000);//使用字符串執行方法 window.clearTimeout(t1);//去掉定時器
setInterval()
在指定時間爲週期循環執行
/實時刷新 時間單位爲毫秒 var t = setInterval('refreshQuery()',8000); /* 刷新查詢 */ function refreshQuery(){ console.log('每8秒調一次') }
window.clearInterval(t)
兩種方法根據不一樣的場景和業務需求擇而取之,
對於這兩個方法,須要注意的是若是要求在每隔一個固定的時間間隔後就精確地執行某動做,那麼最好使用setInterval,而若是不想因爲連續調用產生互相干擾的問題,尤爲是每次函數的調用須要繁重的計算以及很長的處理時間,那麼最好使用setTimeout
location對象
window.location
能夠簡寫成location。location至關於瀏覽器地址欄,能夠將url解析成獨立的片斷。
location對象的屬性
-
href:跳轉
-
hash 返回url中#後面的內容,包含#
-
host 主機名,包括端口
-
hostname 主機名
-
pathname url中的路徑部分
-
protocol 協議 通常是http、https
-
search 查詢字符串
location.href屬性舉例:
舉例1:點擊盒子時,進行跳轉。
<body> <div>smyhvae</div> <script> var div = document.getElementsByTagName("div")[0]; div.onclick = function () { location.href = "http://www.baidu.com"; //點擊div時,跳轉到指定連接 // window.open("http://www.baidu.com","_blank"); //方式二 } </script> </body>
舉例2:5秒後自動跳轉到百度。
有時候,當咱們訪問一個不存在的網頁時,會提示5秒後自動跳轉到指定頁面,此時就能夠用到location。舉例:
<script> setTimeout(function () { location.href = "http://www.baidu.com"; }, 5000); </script>
location.reload():從新加載
setTimeout(function(){ //3秒以後讓網頁整個刷新 window.location.reload(); },3000)
navigator對象
window.navigator 的一些屬性能夠獲取客戶端的一些信息。
-
userAgent:系統,瀏覽器)
-
platform:瀏覽器支持的系統,win/mac/linux
例子:
console.log(navigator.userAgent);
console.log(navigator.platform);
history對象
一、後退:
history.back()
history.go(-1):0是刷新
二、前進:
history.forward()
history.go(1)
用的很少。由於瀏覽器中已經自帶了這些功能的按鈕。
screen對象(瞭解便可)
屏幕對象,不經常使用。
screen.availWidth - 可用的屏幕寬度
screen.availHeight - 可用的屏幕高度