BOM 瀏覽器對象

BOM介紹:

BOM是Browser Object Model的縮寫,簡稱瀏覽器對象模型

最初是Netscape瀏覽器標準的一部分
JavaScript語法的標準化組織是ECMA,DOM的標準化組織是W3C

BOM到目前爲止缺乏標準

整體結構:



1.Window 對象(父對象)

<1>移動
moveBy(x,y)
moveTo(x,y)
<2>大小
resizeBy(w,h)
resizeTo(w,h)
<3>滾動
scrollTo(x,y)
scrollBy(x,y)
<4>焦點
focus()——使窗體或控件獲取焦點
blur()——與focus函數相反,使窗體或控件失去焦點
<5>打開,關閉
open()——打開(彈出)一個新的窗體
close()——關閉窗體

特別注意:以下四個方法均屬於Window對象
setInterval    
setTimeout   
clearInterval 
clearTimeout  


2.History 對象
length 返回瀏覽器歷史列表中的URL數量
console.log(history.length);

back()方法
forward()方法
go("url" or num)方法


3.Location 對象
hash URL最後面#及後的值
host 主機名和當前URL的端口號
hostname 主機名
href 完整的URL
pathname URL的路徑部分
port 當前URL端口號
protocol 當前URL協議
search 從問號開始的URL部分


console.log(location.hash);//#4
console.log(location.host);//baike.baidu.com
console.log(location.hostname);//baike.baidu.com
console.log(location.href);//http://baike.baidu.com/link?url=EhJsUOR0oOs_T3ohX_R9j7qzeiV_m4nkxcZZ2htd4ZaiWkEjU0z7k--bZnU2XkFiFcAG0UJ-tDP5mUu3R0ULOa#4
console.log(location.pathname);// /link
console.log(location.port);// 空
console.log(location.protocol);// http:
console.log(location.search);// ?url=EhJsUOR0oOs_T3ohX_R9j7qzeiV_m4nkxcZZ2htd4ZaiWkEjU0z7k--bZnU2XkFiFcAG0UJ-tDP5mUu3R0ULOa


reload()方法 參數默認爲false
爲true時,強制重新下載頁面
爲false時,會先去服務端查看該頁面是否已經改變,
若沒改變則瀏覽器緩存中加載,若已經改變則重新下載頁面

assign()方法 加載新的文檔,這與直接將一個URL賦值給Location對象的href屬性效果一樣

replace()方法 用新的文檔替換當前文檔,replace()方法不會在History對象中生成一個新
的記錄。當使用該方法時,新的URL將覆蓋History對象中的當前記錄。


問題:(解析url,通過key獲取參數)

function getParamByKey(key){
	var msg = location.search.substring(1).split("&");
	for(i in msg){
		var obj = msg[i];
		var obj_key = obj.substring(0,obj.indexOf("="));
		var obj_value = obj.substring(obj.indexOf("=")+1);
		if(obj_key==key){
			return obj_value;
		}
		
	}
}
console.log(getParamByKey("tn"));

4.Navigator 對象
appCodeName 返回瀏覽器的代碼名
appName 返回瀏覽器的名稱
appVersion 返回瀏覽器的平臺和版本信息
browserLanguage 返回當前瀏覽器的語言
cookieEnabled 返回指明瀏覽器中是否啓用cookie的布爾值
cpuClass 返回瀏覽器系統的 CPU 等級
onLine 返回指明系統是否處於脫機模式的布爾值
platform 返回運行瀏覽器的操作系統平臺
systemLanguage 返回 OS 使用的默認語言
userAgent 返回由客戶機發送服務器的 user-agent 頭部的值
userLanguage 返回 OS 的自然語言設置


console.log(navigator.appCodeName);//Mozilla
console.log(navigator.appName);//Netscape
console.log(navigator.appVersion);//5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
console.log(navigator.browserLanguage);//undefined
console.log(navigator.cookieEnabled);//true
console.log(navigator.cpuClass);//undefined
console.log(navigator.onLine);//true
console.log(navigator.platform);//Win32
console.log(navigator.systemLanguage);//undefined
console.log(navigator.userAgent);//Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
console.log(navigator.userLanguage);//undefined

var browser = window.navigator.userAgent;

谷歌瀏覽器:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"
Opera瀏覽器:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 OPR/27.0.1689.69"
360極速瀏覽器:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36"
360安全瀏覽器:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1"
Safari瀏覽器:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"
ie瀏覽器:
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
Firefox瀏覽器:
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0"


5.screen 對象

console.log("屏幕寬度:"+screen.width + " 可用寬度:" + screen.availWidth);
console.log("屏幕高度:"+screen.height + " 可用高度:" + screen.availHeight);
console.log("屏幕色深:"+screen.colorDepth);

6. document 對象
document.anchors 
是一個數組,包含了文檔中所有錨標記(包含 name 屬性的<a>標記)

document.links 
是一個數組,包含了文檔中所有連接標記(包含 href 屬性的<a>標記和<map>標記段裏的<area>標記)

注意二者之間的區別

document.all
document.forms
document.images


7. frames 對象
包含了框架的版面佈局信息,以及每一個框架所對應的窗口對象
在框架集或包含iframe標籤的頁面中,frames集合包含了對有框架中窗口的引用

frames.length;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章