1. BOM JavaScript基礎分為三部分: ECMAScript:JavaScript的語法標準。包括變數、表達式、運算符、函數、if語句、for語句等。 DOM:文檔對象模型,操作網頁上的元素的API。比如讓盒子移動、變色、輪播圖等。 BOM:瀏覽器對象模型,操作瀏覽器部分功能的API。比 ...
1. BOM
JavaScript基礎分為三部分:
ECMAScript:JavaScript的語法標準。包括變數、表達式、運算符、函數、if語句、for語句等。
DOM:文檔對象模型,操作網頁上的元素的API。比如讓盒子移動、變色、輪播圖等。
BOM:瀏覽器對象模型,操作瀏覽器部分功能的API。比如讓瀏覽器自動滾動。
1.1 BOM的介紹
BOM:Browser Object Model,瀏覽器對象模型。
BOM的結構圖:
從上圖也可以看出:
window對象是BOM的頂層(核心)對象,所有對象都是通過它延伸出來的,也可以稱為window的子對象。
DOM是BOM的一部分。
window對象:
window對象是JavaScript中的頂級對象。
全局變數、自定義函數也是window對象的屬性和方法。
window對象下的屬性和方法調用時,可以省略window。
下麵講一下 BOM 的常見內置方法和內置對象。
1.2 彈出系統對話框
比如說,alert(1)
是window.alert(1)
的簡寫,因為它是window的子方法。
系統對話框有三種:
alert(); //不同瀏覽器中的外觀是不一樣的 confirm(); //相容不好 prompt(); //不推薦使用
1.3 打開視窗、關閉視窗
1.3.1 打開視窗
window.open(url,target)
參數解釋:
url:要打開的地址。
target:新視窗的位置。可以是:
_blank
、_self
、_parent
父框架。
1.3.2 關閉視窗
close();
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!--行間的js中的open() window不能省略--> <button onclick="window.open('https://i-beta.cnblogs.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>
1.4 location對象
window.location
可以簡寫成location。location相當於瀏覽器地址欄,可以將url解析成獨立的片段。
1.4.1 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>
1.4.2 location對象的方法
location.reload():重新載入
setTimeout(function(){ //3秒之後讓網頁整個刷新 window.location.reload(); },3000)
1.5 navigator對象
window.navigator 的一些屬性可以獲取客戶端的一些信息。
userAgent:系統,瀏覽器)
platform:瀏覽器支持的系統,win/mac/linux
例子:
console.log(navigator.userAgent);
console.log(navigator.platform);
1.6 history對象
1、後退:
history.back()
history.go(-1):0是刷新
2、前進:
history.forward()
history.go(1)
用的不多。因為瀏覽器中已經自帶了這些功能的按鈕。