BOM:浏覽器對象模型,包含多個對象有不同的功能
window對象是BOM的頂層對象,其他都是該對象的子對象
window對象:浏覽器視窗對象,所有的JavaScript全局對象、函數以及變量均會自動成為window的屬性和方法(對象成員),可以通過window去通路,預設情況下window可以省略
var a=10;
console.log(a);
console.log(window.a);
window.a=100;
console.log(a)
function sum(){
console.log(3)
}
window.sum();
sum();
window對象屬性和方法
window.screenLeft/screenTop:擷取浏覽器視窗相對于螢幕的左和上的位置,存在相容性FF不支援,screenX/screenY(IE不相容)
innerWidth/innerHeight浏覽器可視視窗的寬高,在IE8以下用document.documentElement.clientWidth/Height
outerWidth/outerHeight浏覽器視窗的大小
window.open()打開一個浏覽器視窗
open(),方法預設情況下打開的是空白視窗,打開視窗沒有back(傳回)功能,注意參數位置順序
參數1:字元串,打開視窗的url
參數2:字元串,控制視窗打開方法_self目前頁面打開,無法再傳回,預設為_blank打開新視窗
參數3:字元串,控制視窗大小和位置
window.open("http://www.baidu.com","_blank","width=300,Height=300,top=200,left=300");
navigator對象
浏覽器嗅探:可擷取目前浏覽器的資訊
浏覽器嗅探使用:navigator.userAgent,來辨識目前代碼運作在哪個浏覽器上,得到的值是字元串
各個浏覽器通過console.log(window.navigator.userAgent)的到的資訊
chrome:Chrome Safari
safari:Safari
FF:Firefox
opera:Chrome Safari OPR
判斷運作浏覽器資訊,注意順序:
var str=window.navigator.userAgent;
if(str.indexOf("Firefox")!=-1){
//火狐浏覽器
}else if(str.indexOf("OPR1")!=-1){
//歐朋浏覽器
}else if(str.indexOf("Chrome")!=-1){
//谷歌浏覽器
}else if(str.indexOf("Safari")!=-1){
// safari浏覽器
}
screen對象
screen對象,包含有關用戶端顯示螢幕的資訊,可以擷取目前裝置的螢幕尺寸,得到的是螢幕的分辨率,目前裝置顯示分辨率不同得到的值也不同
console.log(window.screen.width,window.screen.height)
console.log(window.screen.availWidth,window.screen.availHeight)
location對象
包含位址欄中的相關資訊,将資訊切段,放在多個屬性中儲存
hash:設定或傳回從#開始的url錨,即url#後面的部分,包含#得到的是字元串,console.log(location.hash)
hostname:傳回目前頁面的主機域名, console.log(location.hostname)
pathname:傳回目前頁面的完整路徑以及檔案名,console.log(location.pathname)
port0:端口号,console.log(location.port)
protocol:傳回web協定,console.log(location.protocol)
reload():重新加載目前頁面,不填寫參數,可能從緩存中加載頁面内容,如果填寫true,那麼久從伺服器重新加載
href:設定或傳回完整的url,可設定修改,可傳回跳轉的頁面,console.log(location.href)
document.onclick=function(){
location.href="http://www.baidu.com" target="_blank" rel="external nofollow"
}