BOM中的window對(duì)象

window 對(duì)象

window對(duì)象表示一個(gè)瀏覽器的一個(gè)實(shí)例。瀏覽器中第喳,window對(duì)象有兩個(gè)角色:

  • 訪問(wèn)瀏覽器窗口的一個(gè)接口
  • ECMAScript中的Global對(duì)象
  1. 全局作用域

window對(duì)象作為全局作用域時(shí),里面的所有變量和函數(shù)都會(huì)變?yōu)閣indow對(duì)象的屬性和方法曲饱。

有以下幾點(diǎn)需要注意:

  • 如果直接定義全局變量,則次變量不能當(dāng)做window對(duì)象的屬性刪除
      var a = 1;
      delete window.a;             // false
      // 上面這個(gè)舉動(dòng)在IE9以下瀏覽器中會(huì)報(bào)錯(cuò)
    
  • 如果直接在全局中賦值給變量一個(gè)不存在的變量會(huì)產(chǎn)生錯(cuò)誤楔敌,而把這個(gè)變量作為window對(duì)象賦值則不會(huì)產(chǎn)生錯(cuò)誤。
      var a = b;
      alert(a);     // 此舉動(dòng)會(huì)讓瀏覽器報(bào)錯(cuò)
      var a = window.b;
      alert(a);     // undefined 
    
  1. frame框架窗口中的window對(duì)象

如果在頁(yè)面中包含框架卵凑,那么每個(gè)框架中都會(huì)有自己的一個(gè)window對(duì)象。

如何獲取框架中的一個(gè)frame頁(yè)面的中的全局對(duì)象:

frame.html

打開(kāi)后的frame.html

舉個(gè)栗子:如果在topFrame頁(yè)面中定義一個(gè)全局變量: var a = 1; 伙判,則此變量為window.frames[0]對(duì)象的屬性值漫。

另外,最外層框架不是中的全局對(duì)象不再是window杨何,而是top。

  1. 窗口位置

獲取window對(duì)象的位置(這里的window對(duì)象是作為一個(gè)瀏覽器窗口):

  • screenLeft 和 screenTop 危虱。 IE、Sanfari埃跷、Opera、Chrome 支持
  • screenX 和 screenY 垃帅。 Firefox支持

為了兼容所有瀏覽器,可以這樣定義窗口位置:
var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX;
var topPos = (typeof window.screenTop == "number") ? window.screenTop : window.screenY;

自定義修改窗口位置:

  • moveTo(x, y) 相對(duì)瀏覽器窗口移動(dòng)
  • moveBy(x, y) 相對(duì)當(dāng)前移動(dòng)

注意:這兩個(gè)方法只能相對(duì)于瀏覽器窗口贸诚,不適用于框架厕吉。另外此方法只能在IE中可以直接改變窗口位置,其他瀏覽器則只能在window.open()中打開(kāi)的窗口中使用头朱。

  1. 窗口大小

獲取瀏覽器窗口大小:

  • innerWidth 和 innerHeight 表示瀏覽器視口區(qū)域的寬度和高度
  • outerWidth 和 outerHeight 表示瀏覽器整個(gè)窗口的寬度和高度

以上window對(duì)象屬性只是適用于 IE9+ 及其他所有瀏覽器项钮,如果兼容IE8及以下,可以利用以下屬性:

  • document.documentElement.clientWidth 和 document.documentElement.clientHeight 表示視口區(qū)域大小鳖敷,適用于各主流瀏覽器的標(biāo)準(zhǔn)模式
  • document.body.clientWidth 和 document.body.clientHeight 適用于IE6中的混雜模式中獲取視口區(qū)域大小,現(xiàn)在幾乎已經(jīng)廢棄

自定義修改窗口大卸狻:

  • resizeTo(w ,h) 絕對(duì)大小
  • resizeBy(w, h) 相對(duì)原來(lái)增加或者減少

注意:與moveTo,moveBy方法的特性相同

  1. 窗口導(dǎo)航
  • window.open(url, frame, ...) 打開(kāi)一個(gè)窗口恃鞋,URL參數(shù)后面的參數(shù)可以是框架名稱亦歉、控制窗口特性如_self、 _parent肴楷、 _top荠呐、 _blank 等赛蔫。

    舉個(gè)栗子:var newWin = window.open("https://www.baidu.com/", "_black", "height=400,width=400,top=10,left=10,resizable=yes");
    表示打開(kāi)了一個(gè)400 X 400 像素泥张,距離上左10像素的可以改變其大小的瀏覽器窗口。
    而且在新窗口中我們終于可以沒(méi)有顧忌的適用moveTo和resizeTo這兩個(gè)屬性了:

      // 調(diào)整大小
      newWin.resizeTo(500, 500);
      // 移動(dòng)位置
      newWin.moveTo(100, 100);
    
  • newWin.close(); 關(guān)閉打開(kāi)的這個(gè)窗口

  1. setTimeout 和 setInterval
  • setTimeout() 超時(shí)器

    setTimeout(func,time); 參數(shù)為執(zhí)行的代碼(最好是一個(gè)匿名函數(shù))和一個(gè)毫秒數(shù)表示的時(shí)間渗钉。
    舉個(gè)栗子:

      setTimeout(function() {
        alert("時(shí)間到啦");
      }, 1000);
    
      // 一秒后彈出 時(shí)間到啦钞钙。
    

    清除超時(shí)器:在設(shè)置超時(shí)器的時(shí)候鳄橘,創(chuàng)建一個(gè)變量去保存這個(gè)超時(shí)器的ID

      var id = setTimeout(function() {
        alert("時(shí)間到啦");
      }, 1000);
    
      clearTimeout(id);
    
      // 此處不會(huì)有任何動(dòng)作發(fā)生芒炼,因?yàn)樵?s內(nèi),超時(shí)器已經(jīng)被清除
    
    • setInterval() 定時(shí)器

      使用方式與超時(shí)器相同本刽,但是不同的是每過(guò)一段時(shí)間都會(huì)調(diào)用要執(zhí)行的代碼。

      舉個(gè)栗子:

        setInterval(function() {
          console.log("過(guò)去了一秒");
        }, 1000);
      
        // 沒(méi)一秒都是輸出一句話 過(guò)去了一秒
      

      清除定時(shí)器

      和超時(shí)器要一樣,定時(shí)器的調(diào)用也會(huì)返回一個(gè)id世囊,此時(shí)需要clearInterval()來(lái)清除。

  1. 各種彈框
  • alert() 僅僅是簡(jiǎn)單的彈出消息株憾,參數(shù)為要彈出的內(nèi)容。
  • confirm() 參數(shù)也是要彈出的內(nèi)容墙歪,但是包含兩個(gè)按鈕 確定 和 取消 。點(diǎn)擊確定后函數(shù)會(huì)返回true虹菲,點(diǎn)擊取消后函數(shù)會(huì)返回false掉瞳。
  • prompt() 參數(shù)除了要彈出的內(nèi)容外還有一個(gè)可選參數(shù)毕源,為對(duì)話框中的值,點(diǎn)擊確定后會(huì)返回對(duì)話框中的內(nèi)容址愿。

最近工作繁忙冻璃,如有出錯(cuò)响谓,還請(qǐng)各位讀者大大指出省艳!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市失驶,隨后出現(xiàn)的幾起案子枣购,更是在濱河造成了極大的恐慌嬉探,老刑警劉巖棉圈,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異分瘾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)白魂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門上岗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人肴掷,你說(shuō)我怎么就攤上這事〈粽埃” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵颤介,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我买窟,道長(zhǎng),這世上最難降的妖魔是什么始绍? 我笑而不...
    開(kāi)封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮学赛,結(jié)果婚禮上吞杭,老公的妹妹穿的比我還像新娘盏浇。我一直安慰自己芽狗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布滴劲。 她就那樣靜靜地躺著,像睡著了一般班挖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萧芙,一...
    開(kāi)封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天假丧,我揣著相機(jī)與錄音,去河邊找鬼包帚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛婴噩,可吹牛的內(nèi)容都是我干的羽德。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼章蚣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了纤垂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤峭沦,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吼鱼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡地粪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年琐谤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斗忌。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖几苍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妻坝,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布刽宪,位于F島的核電站界酒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏毁欣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一凭疮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧执解,春花似錦、人聲如沸新蟆。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至欣簇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熊咽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工横殴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留被因,地道東北人衫仑。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像文狱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瞄崇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • window 對(duì)象 BOM的核心對(duì)象是window苏研,它表示瀏覽器的一個(gè)實(shí)例等浊。在瀏覽器中摹蘑,window對(duì)象有雙重角色...
    胖胖冰閱讀 743評(píng)論 0 2
  • 《ijs》速成開(kāi)發(fā)手冊(cè)3.0 官方用戶交流:iApp開(kāi)發(fā)交流(1) 239547050iApp開(kāi)發(fā)交流(2) 10...
    葉染柒丶閱讀 5,194評(píng)論 0 7
  • BOM是瀏覽器對(duì)象模型 Window對(duì)象 BOM 的核心對(duì)象是window,它表示瀏覽器的一個(gè)實(shí)例撒踪。 在瀏覽器中,...
    shanruopeng閱讀 443評(píng)論 0 1
  • 第一章: JS簡(jiǎn)介 從當(dāng)初簡(jiǎn)單的語(yǔ)言制妄,變成了現(xiàn)在能夠處理復(fù)雜計(jì)算和交互兼犯,擁有閉包、匿名函數(shù)切黔, 甚至元編程等...
    LaBaby_閱讀 1,676評(píng)論 0 6
  • 1 一心向凡鐵 無(wú)意染鋒芒 無(wú)奈山河亂 熔鑄保家國(guó) 2 昨日北方天狼來(lái) 今宵送君為家國(guó) 我自扶搖在山河 等君再飲一...
    梵夜閱讀 444評(píng)論 0 1