學習筆記一|Windows對象

計時器

setTimeout()和setInterval()可以用來注冊在指定的時間之后單詞或重復調用的函數。都是客戶端JavaScript中重要的全局函數。

  1. setTimeout()方法用來實現一個函數在指定的毫秒數之后運行,并可以返回一個值;
  2. 1中返回的值可以傳遞給clearTimeout()用于取消這個函數的執行;
  3. setInterval()會在指定毫秒數的這個間隔內重復執行,同時也可以返回一個值;
  4. 3中返回的值可以傳遞給clearInterval()用于取消后續函數的調用。

注意:如果以0毫秒的超時時間來調用setTimeout(),那么指定的函數不會馬上執行,而是先放到隊列中,等到前面處于等待狀態的事件處理程序執行完成后,再“立即”調用它。


瀏覽器定位和導航

Window對象的location屬性引用的是Location對象,表示該窗口中當前顯示的文檔的URL。

window.location === document.location //總是返回true

解析URL

  • Location對象的href屬性是一個字符串,包含URL的完整文本。Location對象的toString()方法返回href屬性的值。
  • 該對象還有其他屬性——protocol,host,hostname,port,pathname和search,分別表示URL的各個部分。它們稱為“URL分解”屬性,同時被Link對象(/<a/>和<area>元素創建)支持。
  • hash屬性返回URL中的“片段標識符”部分
  • search屬性返回問號之后的URL
提取URL中參數.png

載入新的文檔

  • Location對象的assign()方法可以使窗口載入并顯示你指定的URL中的文檔。
  • replace()方法在載入新文檔之前會從瀏覽歷史中把前文檔刪除。

注意:replace()的參數是一個相對URL。

  • reload()方法可以讓瀏覽器重新載入當前文檔。
    傳統方法:
location = "http://www.baidu.com";
location = "page.html";
location = "#top"; //跳轉到文檔的頂部
location.search = "?page" + (pagenum + 1);

瀏覽歷史

window對象的history屬性引用的是該窗口的History對象。

  • History對象的back()和forward()方法與瀏覽器的“后退”和“前進”按鈕一樣。go()接受一個整數參數,可以在歷史列表中向前(正參數)或向后(負參數)跳過任意多個頁面。

瀏覽器和屏幕信息

Navigator對象

window對象的Navigator屬性引用的是包含瀏覽器廠商和版本信息的Navigator對象。該對象有4個屬性用于提供關于運行中的瀏覽器的版本信息:

  • appName:Web瀏覽器的全稱。
  • appVersion:該屬性通常以數字開始,并跟著包含瀏覽器廠商和版本信息的詳細字符串。
  • userAgent:瀏覽器在它的USER-AGENT HTTP頭部中發送的字符串。
  • platform:在其中運行瀏覽器的操作系統(并且可能是硬件)的字符串。
  • onLine:navigator.onLine屬性(如果存在)表示瀏覽器當前是否連接到網絡。
  • geolocation:Geolocation對象定義用于確定用戶地理位置信息的接口。
  • JavaEnabled():一個非標準的方法,當瀏覽器可以運行Java小程序時返回true。
  • cookieEnable():非標準方法。如果瀏覽器可以保存永久的cookie時,返回true。

Screen對象

window對象的screen屬性引用的是Screen對象。它提供有關窗口顯示的大小和可用的顏色數量的信息。

對話框

  • alert()向用戶顯示一條消息并等待用戶關閉對話框。
  • confirm()也顯示一條消息,要求用戶單擊“確定”或“取消”按鈕,并返回一個布爾值。
  • prompt()同樣顯示一條消息,等待用戶輸入字符串,并返回那個字符串。

錯誤處理

window對象的onerror屬性是一個事件處理程序,當未捕獲的異常傳播到調用棧上時就會調用它,并把錯誤消息輸出到瀏覽器的JavaScript控制臺上。


作為window對象屬性的文檔元素


多窗口和窗體

一個web瀏覽器窗口可能在桌面上包含多個標簽頁,每一個標簽頁都是獨立的“瀏覽器上下文”,每一個上下文都有獨立的window對象,而且相互之間互不干擾。

打開和關閉窗口

window.open()載入指定的URL到新的或已存在的窗口中,并返回代表那個窗口的window對象。他有四個可選參數:

  • 第一個是在新窗口中顯示的文檔的URL。如果是空,則打開about:blank
  • 第二個是新打開窗口的名字。如果是已存在窗口的名字,會直接使用已存在的窗口。如果省略該參數,則使用“_blank”。
  • 第三個是一個以逗號分隔的列表,包含大小和各種屬性,用以表示新窗口是如何打開的。
  • 第四個只在第二個參數命名的是一個存在的窗口時才有用。它是一個布爾值,聲明了由第一個參數指定的URL是應用替換掉窗口瀏覽歷史的當前條目(true),還是應該在窗口瀏覽歷史中創建一個新的條目(false),后者是默認的設置。

close()將關閉一個窗口。

window.close();

窗體之間的關系

parent == self; //只有頂級窗口才會返回true 

交互窗口中的JavaScript

每個窗口和窗體都是自身的JavaScript執行上下文,一window作為全局對象

  • 兩個并列的窗體想調用另一方的函數,需將這個函數作為父窗體的子窗體來調用。


    jiaohu.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容