BOM

window對象

全局變量會成為window對象的屬性,但是全局變量不能通過delete 刪除,而直接定義在window對象上的屬性可以

var age = 17;
window.color = 'red';

// 在ie9以下瀏覽器中拋出異常,其他瀏覽器中返回false
delete window.age;
// 在ie9以下瀏覽器中拋出異常,其他瀏覽器中返回true
delete window.color;

console.log(window.age, window.color); // 14, undefined

剛才使用 var 語句添加的 window 屬性有一個名為 [[Configurable]] 的特性,這個特性的值被設(shè)置為 false , 因此這樣定義的屬性不可以通過delete 操作符刪除。 IE8及更早版本在遇到使用 delete刪除 window 屬性的語句時,不管該屬性最初是如何創(chuàng)建的,都會拋出錯誤,以示警告。IE9 及更高版本不會拋出錯誤

窗口關(guān)系及框架
<html>
<head>
    <title>Frameset Example</title>
</head>
<frameset rows="160,*">
    <frame src="frame.htm" name="topFrame">
    <frameset cols="50%,50%">
        <frame src="anotherframe.htm" name="leftFrame">
        <frame src="yetanotherframe.htm" name="rightFrame">
    </frameset>
</frameset>
</html>

top 對象始終指向最高(最外)層的框架,也就是瀏覽器窗口
parent (父)對象始終指向當前框架的直接上層框架。
self ,它始終指向 window ;實際上, self 和 window 對象可以互換使用。引入 self 對象的目的只是為了與 top 和 parent 對象對應(yīng)起來,因此它不格外包含其他值


Paste_Image.png
窗口位置

用來確定和修改 window 對象位置的屬性和方法有很多。IE、Safari、Opera 和 Chrome 都提供了 screenLeft 和 screenTop 屬性,分別用于表示窗口相對于屏幕左邊和上邊的位置。Firefox 則在 screenX 和 screenY 屬性中提供相同的窗口位置信息, Safari 和 Chrome 也同時支持這兩個屬性。 Opera 雖然也支持 screenX 和 screenY 屬性,但與 screenLeft 和 screenTop 屬性并不對應(yīng),因此建議大 家不要在 Opera 中使用它們。使用下列代碼可以跨瀏覽器取得窗口左邊和上邊的位置。

var leftPos = (typeof window.screenLeft) == 'number' ? window.screenLeft : window.screenX;
var topPos = (typeof window.screenTop) == 'number' ? window.screenTop : window.screenY;

窗口大小

IE9+、Firefox、Safari、Opera 和 Chrome 均為此提供了 4個屬性: innerWidth 、 innerHeight 、 outerWidth 和 outerHeight 。IE8 及更早版本沒有提供取得當前瀏覽器窗口尺寸的屬性

在IE9+、FireFox、Safari中: outerWidth, outerHeight返回瀏覽器本身的大?。o論是從最外層的 window 對象還是從某個框架訪問)而 innerWidth 和 innerHeight則表示該容器中頁面視圖區(qū)的大?。p去邊框?qū)挾龋?br> 在Opera中: outerWidth, outerHeight這兩個屬性的值表示頁面視圖容器 的大小。 而innerWidth 和 innerHeight則表示該容器中頁面視圖區(qū)的大?。p去邊框?qū)挾龋?br> Chrome 中: outerWidth 、 outerHeight 與innerWidth 、 innerHeight 返回相同的值,即視口(viewport)大小而非瀏覽器窗口大小

location 對象

location 既是window對象, 也是document對象。即:doucment.location 和 window.location 引用的是同一個對象。

location對象

直接改變location的值,實際上也是調(diào)用assign方法。
window.location = "www.baidu.com";
window.location.href = "www.baidu.com";
這兩種方式等價于window.location.assign('www.baidu.com);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容