JavaScript學習4:BOM之window對象

來源:互聯網
上載者:User

標籤:js   對象   

        BOM也叫做瀏覽器物件模型,它提供了很多個物件,用於訪問瀏覽器的功能。BOM缺少規範,每個瀏覽器供應商又按照自己的想法去擴充它,那麼瀏覽器共有的對象就成了事實的標準,所以,BOM本身是沒有標準的或者說是還沒有哪個組織去為它制定標準。

        本文我們主要來看BOM中的核心對象:Window對象

        Window對象是BOM的核心對象,它表示瀏覽器的一個執行個體。Window對象處於JavaScript結構的最頂層(如所示),對於每個開啟的視窗,系統都會自動為其定義window對象。

       

        1 對象的屬性和方法

        Window對象有一系列的屬性,這些屬性本身也是對象。Window對象下的屬性和方法,可以使用window.屬性和window.方法()或者直接屬性和方法()的方式調用。舉個例子:window.alert()和alert()是一樣的意思。

        由於window對象的屬性和方法較多,這裡不再一一列舉。大家自己可以查閱文檔資料。

        2系統對話方塊

        瀏覽器是通過alert()、confirm()和prompt()方法來調用系統對話方塊向使用者顯示資訊的。系統對話方塊與瀏覽器中顯示的網頁沒有關係,也不包含HTML。

        舉個簡單的輸入提示框的例子:     

<span style="font-size:18px;">var num=prompt('請輸入第一個數字',0);var num1=prompt('請輸入第二個數字',0);var num2= Number(num)+Number(num1);alert('兩個數位和是:'+ num2); </span>

        當然還有其他的提示框,比如調用系統的列印、尋找對話方塊等等,還可以對瀏覽器的狀態列的初始值進行設定。

        3建立視窗

        使用window.open()方法可以導航到一個特定的URL,也可以開啟一個新的瀏覽器視窗,它可以接受四個參數:1.要載入的URL;2.視窗的名稱或者視窗目標;3.一個特定的字串;4.一個表示新頁面是否取代瀏覽器記錄中當前載入頁面的布爾值。

        舉個例子說明一下如何使用        

<span style="font-size:18px;">open('http://www.baidu.com','baidu','width=400,height=400,top=200,left=200,toolbar=yes');</span>

        4間歇調用和逾時調用

        JavaScript是單線程語言,但它允許通過設定逾時值和間歇時間值來控制碼在特定的時刻執行。前者在指定的時間過後執行代碼,而後者則是每隔指定的時間就執行一次。

        逾時調用需要使用window對象的setTimeout()方法,它接受兩個參數:要執行的代碼和毫秒數的逾時時間。調用setTimeout()方法之後,該方法會返回一個數值ID,表示逾時調用。這個逾時調用的ID是計劃執行代碼的唯一標識,可以通過它來取消逾時調用。

        要取消尚未執行的逾時調用計劃,可以調用clearTimeout()方法並將相應的逾時調用ID作為參數傳遞給它。

      間歇調用和逾時調用類似,只不過它會按照指定的時間間隔重複執行代碼,直至間歇調用被取消或者頁面被卸載。設定間歇調用的方法是setInterval(),它接受的參數與setTimeout()相同。

        取消間歇調用方法和取消逾時調用類似,使用clearInterval()方法。但取消間歇調用的重要性遠遠高於取消逾時調用,因為在不加幹涉的情況下,間歇調用將會一直執行到頁面關閉。

        一般認為,使用逾時調用來類比間歇調用是一種最佳模式。在開發環境下,很少使用真正的間歇調用,因為需要根據情況來取消ID,並且可能會造成同步的一些問題,因此不建議使用間歇調用。下面我們使用js寫一個5秒的定時器:     

<span style="font-size:18px;">var num=0;var max=5;function timer(){    //聲明一個定時器num++;if(num==max){alert('5秒後結束!');}else{setTimeout(timer,1000);}}setTimeout(timer,1000);  //執行定時器</span>

        至此,對於BOM的window對象就介紹完了,沒有什麼高深的東西和牛逼的技巧,都是基礎的東西,但是這是我們的必經之路,萬丈高樓平地起!

JavaScript學習4:BOM之window對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.