JS Browser BOM 來(lái)之 3WSCHOOL
?-- (自定義學(xué)習(xí)版)
這里講解 JavaScript BOM 對(duì)象?。?/p>
Window - 瀏覽器對(duì)象模型(窗口對(duì)象模型)
Window 對(duì)象
所有瀏覽器都支持?window?對(duì)象。它代表瀏覽器的窗口。
所有全局 JavaScript 對(duì)象,函數(shù)和變量自動(dòng)成為 window 對(duì)象的成員。
全局變量是 window 對(duì)象的屬性。
全局函數(shù)是 window 對(duì)象的方法。
甚至(HTML DOM 的)document 對(duì)象也是 window 對(duì)象屬性:
蠻重要的啊? 所以啊 可以不用寫(xiě) 直接用.
?
等同于:
?
?
?
窗口尺寸
兩個(gè)屬性可用用于確定瀏覽器窗口的尺寸。
這兩個(gè)屬性都以像素返回尺寸:
- window.innerHeight - 瀏覽器窗口的內(nèi)高度(以像素計(jì))
- window.innerWidth - 瀏覽器窗口的內(nèi)寬度(以像素計(jì))
但不包括工具欄和滾動(dòng)條。
例:
- document.documentElement.clientHeight
- document.documentElement.clientWidth
或
- document.body.clientHeight
- document.body.clientWidth
例:(自己復(fù)制在script中試試!)
反正我覺(jué)得不多準(zhǔn)啊 自己去測(cè)試啊? 前端煩死了....搞這搞那的...
?
?
-------------------------------------------------------------------------------------------
其他窗口方法
一些其他方法:
- window.open() - 打開(kāi)新窗口
- window.close() - 關(guān)閉當(dāng)前窗口
- window.moveTo() -移動(dòng)當(dāng)前窗口
- window.resizeTo() -重新調(diào)整當(dāng)前窗口
?
接下來(lái)一一介紹:
?
- window.open()
定義和用法
?
open() 方法用于打開(kāi)一個(gè)新的瀏覽器窗口或查找一個(gè)已命名的窗口。
?
語(yǔ)法
參數(shù) | 描述 |
URL | 一個(gè)可選的字符串,聲明了要在新窗口中顯示的文檔的 URL可選。如果沒(méi)有指定URL,打開(kāi)一個(gè)新的空白窗口 |
name | 可選。指定target屬性或窗口的名稱。支持以下值:
|
features | 可選。一個(gè)逗號(hào)分隔的項(xiàng)目列表。支持以下值: |
replace ? | 一個(gè)可選的布爾值。規(guī)定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創(chuàng)建一個(gè)新條目,還是替換瀏覽歷史中的當(dāng)前條目。支持下面的值:
|
channelmode=yes|no|1|0 | 是否要在影院模式顯示 window。默認(rèn)是沒(méi)有的。僅限IE瀏覽器 |
directories=yes|no|1|0 | 是否添加目錄按鈕。默認(rèn)是肯定的。僅限IE瀏覽器 |
fullscreen=yes|no|1|0 | 瀏覽器是否顯示全屏模式。默認(rèn)是沒(méi)有的。在全屏模式下的 window,還必須在影院模式。僅限IE瀏覽器 |
height=pixels | 窗口的高度。最小.值為100 |
left=pixels | 該窗口的左側(cè)位置 |
location=yes|no|1|0 | 是否顯示地址字段.默認(rèn)值是yes |
menubar=yes|no|1|0 | 是否顯示菜單欄.默認(rèn)值是yes |
resizable=yes|no|1|0 | 是否可調(diào)整窗口大小.默認(rèn)值是yes |
scrollbars=yes|no|1|0 | 是否顯示滾動(dòng)條.默認(rèn)值是yes |
status=yes|no|1|0 | 是否要添加一個(gè)狀態(tài)欄.默認(rèn)值是yes |
titlebar=yes|no|1|0 | 是否顯示標(biāo)題欄.被忽略,除非調(diào)用HTML應(yīng)用程序或一個(gè)值得信賴的對(duì)話框.默認(rèn)值是yes |
toolbar=yes|no|1|0 | 是否顯示瀏覽器工具欄.默認(rèn)值是yes |
top=pixels | 窗口頂部的位置.僅限IE瀏覽器 |
width=pixels | 窗口的寬度.最小.值為100 |
提示和注釋
特別注意一下?name 這個(gè)參數(shù)啊 如果打開(kāi)的窗口中存在這個(gè)name 那么就不會(huì)打開(kāi)了啊? 即:不存在name的窗口我才新建一個(gè)窗口給你的啊.
還有就是?。喝绻麨g覽器阻止彈出窗口 那么會(huì)返回null啊? 因此可以將這個(gè)語(yǔ)句放入到try - cathch中??!??
重要事項(xiàng):請(qǐng)不要混淆方法 Window.open() 與方法 Document.open(),這兩者的功能完全不同。為了使您的代碼清楚明白,請(qǐng)使用 Window.open(),而不要使用 open()。
犯法返回一個(gè)窗口對(duì)象 可以用此對(duì)象操作新建的窗口 例:
?
?
?
Window?close()?方法
定義和用法
close() 方法用于關(guān)閉瀏覽器窗口。
直接關(guān)閉 沒(méi)什么其他的..
?
?
- window.moveTo() -移動(dòng)當(dāng)前窗口
定義和用法
moveTo() 方法可把窗口的左上角移動(dòng)到一個(gè)指定的坐標(biāo)。
語(yǔ)法
- window.moveTo(x,y)
例: 將新窗口移動(dòng)到x為0y為0 即:左上角~
?
?
?
?window.resizeTo() -重新調(diào)整當(dāng)前窗口
?
定義和用法
resizeTo() 方法用于把窗口大小調(diào)整為指定的寬度和高度。
語(yǔ)法
參數(shù) | 描述 |
width | 必需。想要調(diào)整到的窗口的寬度。以像素計(jì)。 |
height | 可選。想要調(diào)整到的窗口的高度。以像素計(jì)。 |
這個(gè)也沒(méi)什么好說(shuō) 自己寫(xiě)啊?
?
?
?以上幾個(gè)窗口的4個(gè)方法 主要還是先要獲取到window對(duì)象啊.
?
?
Window Screen? 窗口屏幕對(duì)象
?
window.screen?對(duì)象不帶 window 前綴也可以寫(xiě):
屬性:
- screen.width
- screen.height
- screen.availWidth
- screen.availHeight
- screen.colorDepth
- screen.pixelDepth
?
1.screen.width?屬性返回以像素計(jì)的訪問(wèn)者屏幕寬度。
例:document.writeln(screen.width);
2.screen.height?屬性返回以像素計(jì)的訪問(wèn)者屏幕的高度。
例:document.writeln(screen.height);
3.screen.availWidth?屬性返回訪問(wèn)者屏幕的寬度,以像素計(jì),減去諸如窗口工具條之類的界面特征。
例:document.writeln(screen.availWidth);
4.screen.availHeight?屬性返回訪問(wèn)者屏幕的高度,以像素計(jì),減去諸如窗口工具條之類的界面特征。
例:document.writeln(screen.availHeight);
5.screen.colorDepth?屬性返回用于顯示一種顏色的比特?cái)?shù)。
所有現(xiàn)代計(jì)算機(jī)都使用 24 位或 32 位硬件的色彩分辨率:
- 24 bits =16,777,216 種不同的 "True Colors"
- 32 bits = 4,294,967,296 中不同的 "Deep Colors"
更老的計(jì)算機(jī)使用 14 位:65,536 種不同的 "High Colors" 分辨率。
異常古老的計(jì)算機(jī),以及老式的手機(jī)使用 8 位:256 中不同的 "VGA colors"。
例:document.writeln(screen.colorDepth);
6.screen.pixelDepth?屬性返回屏幕的像素深度。
例:document.writeln(screen.pixelDepth);
對(duì)于現(xiàn)代計(jì)算機(jī),顏色深度和像素深度是相等的。
貌似這幾個(gè)函數(shù)除了1和2? 其他沒(méi)什么軟用..
?
Location對(duì)象這里不說(shuō)啊 具體在JavaScript分區(qū)的location三個(gè)犯法會(huì)用即可:屬性哪里也有啊:
Location 對(duì)象方法
可以在Location對(duì)象上使用以下方法:
方法 | 描述 |
assign() | 加載新文檔 |
reload() | 重新加載當(dāng)前文檔 |
replace() | 用新的文檔替換當(dāng)前文檔 |
?
?
History:歷史window.history 對(duì)象包含瀏覽器歷史。
window.history?對(duì)象可不帶 window 書(shū)寫(xiě)。
為了保護(hù)用戶的隱私,JavaScript 訪問(wèn)此對(duì)象存在限制。
對(duì)象方法:
- history.back() - 等同于在瀏覽器點(diǎn)擊后退按鈕
- history.forward() - 等同于在瀏覽器中點(diǎn)擊前進(jìn)按鈕
?
1.history.back()?
history.back()?方法加載歷史列表中前一個(gè) URL。
這等同于在瀏覽器中點(diǎn)擊后退按鈕。
?
2.
?
history forward()?方法加載歷史列表中下一個(gè) URL。
?
這等同于在瀏覽器中點(diǎn)擊前進(jìn)按鈕。
?
?
?window.navigator 對(duì)象包含有關(guān)訪問(wèn)者的信息。
?
JavaScript 有三種類型的彈出框:警告框、確認(rèn)框和提示框。
?這也不說(shuō)啊 自己看
?
?
?
Timing 事件 計(jì)時(shí)器啊? 就是 那個(gè)....也學(xué)過(guò)的啦 就是 那玩意?setTimeout(function,?milliseconds) 和?setInterval(function,?milliseconds) 這玩意??!
?
Cookies? 對(duì)象
什么是 cookie?
Cookie 是在您的計(jì)算機(jī)上存儲(chǔ)在小的文本文件中的數(shù)據(jù)。
當(dāng) web 服務(wù)器向?yàn)g覽器發(fā)送網(wǎng)頁(yè)后,連接被關(guān)閉,服務(wù)器會(huì)忘記用戶的一切。
Cookie 是為了解決“如何記住用戶信息”而發(fā)明的:
- 當(dāng)用戶訪問(wèn)網(wǎng)頁(yè)時(shí),他的名字可以存儲(chǔ)在 cookie 中。
- 下次用戶訪問(wèn)該頁(yè)面時(shí),cookie 會(huì)“記住”他的名字。
Cookie 保存在名稱值對(duì)中,如:
當(dāng)瀏覽器從服務(wù)器請(qǐng)求一個(gè)網(wǎng)頁(yè)時(shí),將屬于該頁(yè)的 cookie 添加到該請(qǐng)求中。這樣服務(wù)器就獲得了必要的數(shù)據(jù)來(lái)“記住”用戶的信息。
如果瀏覽器已關(guān)閉本地 cookie 支持,則以下實(shí)例均無(wú)法工作。
?
通過(guò) JavaScript 創(chuàng)建 cookie
JavaScript 可以用?document.cookie?屬性創(chuàng)建、讀取、刪除 cookie。
通過(guò) JavaScript,可以這樣創(chuàng)建 cookie:
您還可以添加有效日期(UTC 時(shí)間)。默認(rèn)情況下,在瀏覽器關(guān)閉時(shí)會(huì)刪除 cookie:
通過(guò)?path?參數(shù),您可以告訴瀏覽器 cookie 屬于什么路徑。默認(rèn)情況下,cookie 屬于當(dāng)前頁(yè)。
//不知道你看懂沒(méi) 反正我是沒(méi)看懂啊..其實(shí)你cookie要有東西復(fù)制給他就行了..
?
?
?
通過(guò) JavaScript 讀取 cookie
通過(guò) JavaScript,可以這樣讀取 cookie:
document.cookie = "name = hgy";
var xx = document.cookie;
document.writeln(xx);
?
google 不行啊 讀取不出來(lái)啊!火狐就可以啊!
可以自己試試啊
?
?
通過(guò) JavaScript 改變 cookie
通過(guò)使用 JavaScript,你可以像你創(chuàng)建 cookie 一樣改變它:
舊 cookie 被覆蓋。
?
通過(guò) JavaScript 刪除 cookie
刪除 cookie 非常簡(jiǎn)單。
刪除 cookie 時(shí)不必指定 cookie 值:
直接把?expires?參數(shù)設(shè)置為過(guò)去的日期即可:
您應(yīng)該定義 cookie 路徑以確保刪除正確的 cookie。
如果你不指定路徑,一些瀏覽器不會(huì)讓你刪除 cookie。
?
cookie 字符串
document.cookie?屬性看起來(lái)像一個(gè)正常的文本字符串。什么(什么看起來(lái)像啊? 簡(jiǎn)直就是原模原樣!媽耶)但它不是。
即使你向?document.cookie?寫(xiě)一份完整的 cookie 字符串,當(dāng)再次讀取時(shí),你只能看到它的名稱-值對(duì)。
如果設(shè)置了新 cookie,則舊的 cookie 不會(huì)被覆蓋。新的 Cookie 會(huì)被添加到 document.cookie,所以如果你讀取 document.cookie,你得到的東西會(huì)像這樣:
顯示所有 cookie 創(chuàng)建 cookie 1 創(chuàng)建 cookie 2 刪除 cookie 1 刪除 cookie 2
如果你想找到一個(gè)指定 cookie 的值,你必須編寫(xiě) JavaScript 函數(shù)來(lái)搜索 cookie 字符串中的 cookie 值
?
別管那么多 知道怎么創(chuàng)建刪除差不都了 前段煩死了 媽耶?。?!
具體創(chuàng)建 查詢 什么什么的方法 自己寫(xiě)??!
好了啊!? BOM差不都了 哎 主要還是那么幾個(gè)用的比較多?。?/h2>
?
?
?
?
?
作者:??咸瑜??
本文摘自 :https://blog.51cto.com/u