標籤:www ack 路徑 json type web 系統 open elm
本文最初發表於部落格園,並在GitHub上持續更新前端的系列文章。歡迎在GitHub上關注我,一起入門和進階前端。
以下是本文。
BOM的介紹JavaScript的組成
JavaScript基礎分為三個部分:
ECMAScript:JavaScript的文法標準。包括變數、運算式、運算子、函數、if語句、for語句等。
DOM:文件物件模型,操作網頁上的元素的API。比如讓盒子移動、變色、輪播圖等。
BOM:瀏覽器物件模型,操作瀏覽器部分功能的API。比如讓瀏覽器自動滾動。
什麼是BOM
BOM:Browser Object Model,瀏覽器物件模型。
BOM的結構圖:
從也可以看出:
window對象:
window對象是JavaScript中的頂級對象。
全域變數、自訂函數也是window對象的屬性和方法。
window對象下的屬性和方法調用時,可以省略window。
下面講一下 BOM 的常見內建方法和內建對象。
彈出系統對話方塊
比如說,alert(1)
是window.alert(1)
的簡寫,因為它是window的子方法。
系統對話方塊有三種:
alert(); //不同瀏覽器中的外觀是不一樣的 confirm(); //相容不好 prompt(); //不推薦使用
開啟視窗、關閉視窗
1、開啟視窗:
window.open(url,target,param)
參數解釋:
param這個參數,可以填各種各樣的參數(),比如:
name:新視窗的名稱,可以為空白
featurse:屬性控制字元串,在此控制視窗的各種屬性,屬性之間以逗號隔開。
fullscreen= { yes/no/1/0 } 是否全屏,預設no
channelmode= { yes/no/1/0 } 是否顯示頻道欄,預設no
toolbar= { yes/no/1/0 } 是否顯示工具條,預設no
location= { yes/no/1/0 } 是否顯示地址欄,預設no。(有的瀏覽器不一定支援)
directories = { yes/no/1/0 } 是否顯示轉向按鈕,預設no
status= { yes/no/1/0 } 是否顯示視窗狀態條,預設no
menubar= { yes/no/1/0 } 是否顯示菜單,預設no
scrollbars= { yes/no/1/0 } 是否顯示捲軸,預設yes
resizable= { yes/no/1/0 } 是否視窗可調整大小,預設no
width=number 視窗寬度(像素單位)
height=number 視窗高度(像素單位)
top=number 視窗離螢幕頂部距離(像素單位)
left=number 視窗離螢幕左邊距離(像素單位)
各個參數之間用逗號隔開就行,但我們最好是把它們統一放到json裡。
2、關閉視窗:window.close()
(1)和(2)的代碼舉例:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><a href="javascript:;">點擊我開啟一個新的頁面</a><a href="javascript:;">點擊我關閉本頁面</a><script> //新視窗 = window.open(地址,是否開新視窗,新視窗的各種參數); var a1 = document.getElementsByTagName("a")[0]; var a2 = document.getElementsByTagName("a")[1]; a1.onclick = function () {//舉例1: window.open("http://www.jd.com","_blank"); var json = { "name": "helloworld", "fullscreen": "no", "location": "no", "width": "100px", "height": "100px", "top": "100px", "left": "100px" }; window.open("http://www.baidu.com", "_blank", json); //舉例2 } //關閉本頁面 a2.onclick = function () { window.close(); }</script></body></html>
3、新視窗相關:
新視窗.moveTo(5,5)
新視窗.moveBy()
新視窗.resizeTo()
window.resizeBy()
代碼舉例:
var newWin = window.open("demo.html", "_blank", json); newWin.moveTo(500, 500);
location對象
window.location
可以簡寫成location。location相當於瀏覽器地址欄,可以將url解析成獨立的片段。
location對象的屬性
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.assign():改變瀏覽器地址欄的地址,並記錄到曆史中
設定location.href 就會調用assign()。一般使用location.href 進行頁面之間的跳轉。
navigator對象
window.navigator 的一些屬性可以擷取用戶端的一些資訊。
舉例:
console.log(navigator.userAgent); console.log(navigator.platform);
效果如下:
history對象
1、記錄管理
2、後退:
history.back()
history.go(-1):0是重新整理
3、前進:
history.forward()
history.go(1)
用的不多。因為瀏覽器中已經內建了這些功能的按鈕:
我的公眾號
想學習代碼之外的軟技能?不妨關注我的公眾號:生命團隊(id:vitateam
)。
掃一掃,你將發現另一個全新的世界,而這將是一場美麗的意外:
JavaScript基礎:BOM的常見內建方法和內建對象