BOM的介紹
JavaScript基礎分為三個部分:
-
ECMAScript:JavaScript的語法標准。包括變量、表達式、運算符、函數、if語句、for語句等。
-
DOM:文檔對象模型,操作網頁上的元素的API。比如讓盒子移動、變色、輪播圖等。
-
BOM:瀏覽器對象模型,操作瀏覽器部分功能的API。比如讓瀏覽器自動滾動。
什么是BOM
BOM:Browser Object Model,瀏覽器對象模型。
BOM的結構圖:

從上圖也可以看出:
-
window對象是BOM的頂層(核心)對象,所有對象都是通過它延伸出來的,也可以稱為window的子對象。
-
DOM是BOM的一部分。
window對象:
-
window對象是JavaScript中的頂級對象。
-
全局變量、自定義函數也是window對象的屬性和方法。
-
window對象下的屬性和方法調用時,可以省略window。
下面講一下 BOM 的常見內置方法和內置對象。
彈出系統對話框
比如說,alert(1)是window.alert(1)的簡寫,因為它是window的子方法。
系統對話框有三種:
alert(); //不同瀏覽器中的外觀是不一樣的 confirm(); //兼容不好 prompt(); //不推薦使用
打開窗口、關閉窗口
1、打開窗口:
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>
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對象的方法
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對象
1、后退:
-
history.back()
-
history.go(-1):0是刷新
2、前進:
-
history.forward()
-
history.go(1)
用的不多。因為瀏覽器中已經自帶了這些功能的按鈕:
