當(dāng)前位置:首頁 > IT技術(shù) > Web編程 > 正文

JS Browser BOM
2022-05-31 17:14:04

JS Browser BOM  來之 3WSCHOOL

?-- (自定義學(xué)習(xí)版)  

這里講解 JavaScript BOM 對象啊:

Window - 瀏覽器對象模型(窗口對象模型)

Window 對象

所有瀏覽器都支持?window?對象。它代表瀏覽器的窗口。

所有全局 JavaScript 對象,函數(shù)和變量自動成為 window 對象的成員。

全局變量是 window 對象的屬性。

全局函數(shù)是 window 對象的方法。

甚至(HTML DOM 的)document 對象也是 window 對象屬性:

蠻重要的啊? 所以啊 可以不用寫 直接用.

?

window.document.getElementById("header");

等同于:

document.getElementById("header");

?

?

?

窗口尺寸

兩個屬性可用用于確定瀏覽器窗口的尺寸。

這兩個屬性都以像素返回尺寸:

  • window.innerHeight - 瀏覽器窗口的內(nèi)高度(以像素計)
  • window.innerWidth - 瀏覽器窗口的內(nèi)寬度(以像素計)

   但不包括工具欄和滾動條。

  例:

  • document.documentElement.clientHeight
  • document.documentElement.clientWidth

  • document.body.clientHeight
  • document.body.clientWidth

例:(自己復(fù)制在script中試試!)

var?h?=?window.innerHeight;
var?w?=?window.innerWidth;
document.write("高:"?+?h?+?"<pre> </pre>"?+?"寬"?+?w);

????document.writeln("<pre> </pre>?----------?<pre> </pre>");

????/*第二種:*/
var?h?=?document.body.clientWidth;
var?w?=?document.body.clientHeight;
document.write("高:"?+?h?+?"<pre> </pre>"?+?"寬"?+?w);

反正我覺得不多準(zhǔn)啊 自己去測試啊? 前端煩死了....搞這搞那的...

?

?

-------------------------------------------------------------------------------------------

其他窗口方法

一些其他方法:

  • window.open() - 打開新窗口
  • window.close() - 關(guān)閉當(dāng)前窗口
  • window.moveTo() -移動當(dāng)前窗口
  • window.resizeTo() -重新調(diào)整當(dāng)前窗口

?

接下來一一介紹:

?

  • window.open()

定義和用法


?

open() 方法用于打開一個新的瀏覽器窗口或查找一個已命名的窗口。

?

語法

window.open(URL,name,features,replace)

參數(shù)

描述

URL

一個可選的字符串,聲明了要在新窗口中顯示的文檔的 URL可選。如果沒有指定URL,打開一個新的空白窗口

name

可選。指定target屬性或窗口的名稱。支持以下值:

  • _blank - URL加載到一個新的窗口。這是默認(rèn)
  • _parent - URL加載到父框架
  • _self - URL替換當(dāng)前頁面
  • _top - URL替換任何可加載的框架集
  • name- 窗口名稱

features

可選。一個逗號分隔的項目列表。支持以下值:


replace

?

一個可選的布爾值。規(guī)定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創(chuàng)建一個新條目,還是替換瀏覽歷史中的當(dāng)前條目。支持下面的值:

  • true - URL 替換瀏覽歷史中的當(dāng)前條目。
  • false - URL 在瀏覽歷史中創(chuàng)建新的條目。

channelmode=yes|no|1|0

是否要在影院模式顯示 window。默認(rèn)是沒有的。僅限IE瀏覽器

directories=yes|no|1|0

是否添加目錄按鈕。默認(rèn)是肯定的。僅限IE瀏覽器

fullscreen=yes|no|1|0

瀏覽器是否顯示全屏模式。默認(rèn)是沒有的。在全屏模式下的 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

是否顯示滾動條.默認(rèn)值是yes

status=yes|no|1|0

是否要添加一個狀態(tài)欄.默認(rèn)值是yes

titlebar=yes|no|1|0

是否顯示標(biāo)題欄.被忽略,除非調(diào)用HTML應(yīng)用程序或一個值得信賴的對話框.默認(rèn)值是yes

toolbar=yes|no|1|0

是否顯示瀏覽器工具欄.默認(rèn)值是yes

top=pixels

窗口頂部的位置.僅限IE瀏覽器

width=pixels

窗口的寬度.最小.值為100

提示和注釋

特別注意一下?name 這個參數(shù)啊 如果打開的窗口中存在這個name 那么就不會打開了啊? 即:不存在name的窗口我才新建一個窗口給你的啊.

還有就是?。喝绻麨g覽器阻止彈出窗口 那么會返回null啊? 因此可以將這個語句放入到try - cathch中?。??

重要事項:請不要混淆方法 Window.open() 與方法 Document.open(),這兩者的功能完全不同。為了使您的代碼清楚明白,請使用 Window.open(),而不要使用 open()。

犯法返回一個窗口對象 可以用此對象操作新建的窗口 例:

function?openWin(){
????myWindow=window.open('','','width=200,height=100');
????myWindow.document.write("<p>這是'我的窗口'</p>");
????myWindow.focus();
}

?


?

?

Window?close()?方法

定義和用法

close() 方法用于關(guān)閉瀏覽器窗口。

直接關(guān)閉 沒什么其他的..

?


?

  • window.moveTo() -移動當(dāng)前窗口

定義和用法

moveTo() 方法可把窗口的左上角移動到一個指定的坐標(biāo)。

語法

  • window.moveTo(x,y)

  例: 將新窗口移動到x為0y為0 即:左上角~

function?moveWin(){
????myWindow.moveTo(0,0);
????myWindow.focus();
}

?

?

?


?window.resizeTo() -重新調(diào)整當(dāng)前窗口

?

定義和用法

resizeTo() 方法用于把窗口大小調(diào)整為指定的寬度和高度。

語法

resizeTo(width,height)

參數(shù)

描述

width

必需。想要調(diào)整到的窗口的寬度。以像素計。

height

可選。想要調(diào)整到的窗口的高度。以像素計。

這個也沒什么好說 自己寫啊?

?

?


?以上幾個窗口的4個方法 主要還是先要獲取到window對象啊.


?

?

Window Screen? 窗口屏幕對象

?

window.screen?對象不帶 window 前綴也可以寫:

屬性:

  • screen.width
  • screen.height
  • screen.availWidth
  • screen.availHeight
  • screen.colorDepth
  • screen.pixelDepth

? 1.screen.width?屬性返回以像素計的訪問者屏幕寬度。

例:document.writeln(screen.width);

2.screen.height?屬性返回以像素計的訪問者屏幕的高度。

例:document.writeln(screen.height);

3.screen.availWidth?屬性返回訪問者屏幕的寬度,以像素計,減去諸如窗口工具條之類的界面特征。

例:document.writeln(screen.availWidth);

4.screen.availHeight?屬性返回訪問者屏幕的高度,以像素計,減去諸如窗口工具條之類的界面特征。

例:document.writeln(screen.availHeight);

5.screen.colorDepth?屬性返回用于顯示一種顏色的比特數(shù)。

所有現(xiàn)代計算機(jī)都使用 24 位或 32 位硬件的色彩分辨率:

  • 24 bits =16,777,216 種不同的 "True Colors"
  • 32 bits = 4,294,967,296 中不同的 "Deep Colors"

更老的計算機(jī)使用 14 位:65,536 種不同的 "High Colors" 分辨率。

異常古老的計算機(jī),以及老式的手機(jī)使用 8 位:256 中不同的 "VGA colors"。

例:document.writeln(screen.colorDepth);

6.screen.pixelDepth?屬性返回屏幕的像素深度。

例:document.writeln(screen.pixelDepth);

對于現(xiàn)代計算機(jī),顏色深度和像素深度是相等的。

貌似這幾個函數(shù)除了1和2? 其他沒什么軟用..


?

Location對象這里不說啊 具體在JavaScript分區(qū)的location三個犯法會用即可:屬性哪里也有?。?/h2>

Location 對象方法

可以在Location對象上使用以下方法:

方法

描述

assign()

加載新文檔

reload()

重新加載當(dāng)前文檔

replace()

用新的文檔替換當(dāng)前文檔

?


?

History:歷史window.history 對象包含瀏覽器歷史。

window.history?對象可不帶 window 書寫。

為了保護(hù)用戶的隱私,JavaScript 訪問此對象存在限制。

對象方法:

  • history.back() - 等同于在瀏覽器點(diǎn)擊后退按鈕
  • history.forward() - 等同于在瀏覽器中點(diǎn)擊前進(jìn)按鈕

?

1.history.back()?

history.back()?方法加載歷史列表中前一個 URL。

這等同于在瀏覽器中點(diǎn)擊后退按鈕。

?

2.

?

history forward()?方法加載歷史列表中下一個 URL。

?

這等同于在瀏覽器中點(diǎn)擊前進(jìn)按鈕。

?


?

?window.navigator 對象包含有關(guān)訪問者的信息。


?


JavaScript 有三種類型的彈出框:警告框、確認(rèn)框和提示框。

?這也不說啊 自己看

?


?

?

Timing 事件 計時器啊? 就是 那個....也學(xué)過的啦 就是 那玩意?setTimeout(function,?milliseconds) 和?setInterval(function,?milliseconds) 這玩意??!


?

Cookies? 對象

什么是 cookie?

Cookie 是在您的計算機(jī)上存儲在小的文本文件中的數(shù)據(jù)。

當(dāng) web 服務(wù)器向瀏覽器發(fā)送網(wǎng)頁后,連接被關(guān)閉,服務(wù)器會忘記用戶的一切。

Cookie 是為了解決“如何記住用戶信息”而發(fā)明的:

  • 當(dāng)用戶訪問網(wǎng)頁時,他的名字可以存儲在 cookie 中。
  • 下次用戶訪問該頁面時,cookie 會“記住”他的名字。

Cookie 保存在名稱值對中,如:

username?=?Bill?Gates

當(dāng)瀏覽器從服務(wù)器請求一個網(wǎng)頁時,將屬于該頁的 cookie 添加到該請求中。這樣服務(wù)器就獲得了必要的數(shù)據(jù)來“記住”用戶的信息。

如果瀏覽器已關(guān)閉本地 cookie 支持,則以下實例均無法工作。

?

通過 JavaScript 創(chuàng)建 cookie

JavaScript 可以用?document.cookie?屬性創(chuàng)建、讀取、刪除 cookie。

通過 JavaScript,可以這樣創(chuàng)建 cookie:

document.cookie?=?"username=Bill?Gates";

您還可以添加有效日期(UTC 時間)。默認(rèn)情況下,在瀏覽器關(guān)閉時會刪除 cookie:

document.cookie?=?"username=John?Doe;?expires=Sun,?31?Dec?2017?12:00:00?UTC";

通過?path?參數(shù),您可以告訴瀏覽器 cookie 屬于什么路徑。默認(rèn)情況下,cookie 屬于當(dāng)前頁。

document.cookie?=?"username=Bill?Gates;?expires=Sun,?31?Dec?2017?12:00:00?UTC;?path=/";

  //不知道你看懂沒 反正我是沒看懂啊..其實你cookie要有東西復(fù)制給他就行了..

?

?

?

通過 JavaScript 讀取 cookie

通過 JavaScript,可以這樣讀取 cookie:

document.cookie = "name = hgy";
var xx = document.cookie;
document.writeln(xx);

?

google 不行啊 讀取不出來啊!火狐就可以?。?/p>

可以自己試試啊

?

?

通過 JavaScript 改變 cookie

通過使用 JavaScript,你可以像你創(chuàng)建 cookie 一樣改變它:

document.cookie?=?"username=Steve?Jobs;?expires=Sun,?31?Dec?2017?12:00:00?UTC;?path=/";
直接改啊

舊 cookie 被覆蓋。

?

通過 JavaScript 刪除 cookie

刪除 cookie 非常簡單。

刪除 cookie 時不必指定 cookie 值:

直接把?expires?參數(shù)設(shè)置為過去的日期即可:

document.cookie?=?"username=;?expires=Thu,?01?Jan?1970?00:00:00?UTC;?path=/;";
其實吧!你也可以直接暴力點(diǎn)?管他干?。?br/>document.cookie?=?'';

您應(yīng)該定義 cookie 路徑以確保刪除正確的 cookie。

如果你不指定路徑,一些瀏覽器不會讓你刪除 cookie。

?

cookie 字符串

document.cookie?屬性看起來像一個正常的文本字符串。什么(什么看起來像啊? 簡直就是原模原樣!媽耶)但它不是。

即使你向?document.cookie?寫一份完整的 cookie 字符串,當(dāng)再次讀取時,你只能看到它的名稱-值對。

如果設(shè)置了新 cookie,則舊的 cookie 不會被覆蓋。新的 Cookie 會被添加到 document.cookie,所以如果你讀取 document.cookie,你得到的東西會像這樣:

cookie1?=?value;?cookie2?=?value;

顯示所有 cookie 創(chuàng)建 cookie 1 創(chuàng)建 cookie 2 刪除 cookie 1 刪除 cookie 2

如果你想找到一個指定 cookie 的值,你必須編寫 JavaScript 函數(shù)來搜索 cookie 字符串中的 cookie 值

?

別管那么多 知道怎么創(chuàng)建刪除差不都了 前段煩死了 媽耶!??!

具體創(chuàng)建 查詢 什么什么的方法 自己寫??!


好了??!? BOM差不都了 哎 主要還是那么幾個用的比較多啊!

?

?

?

?

?


作者:??咸瑜??

本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務(wù)立即開通 >