location屬性解釋 - window.location & $location


window.location

所有瀏覽器都支持 window 對象。它表示瀏覽器窗口。所有 JavaScript 全局對象、函數以及變量均自動成為 window 對象的成員。

  • 全局變量是 window 對象的屬性
  • 全局函數是 window 對象的方法

window.location 對象用於獲得當前頁面的地址 (URL)信息,並把瀏覽器重定向到新的頁面,一般在編寫時可不使用 window 這個前綴。

屬性 描述
hash 設置或返回從#開始的 URL(錨)
host 設置或返回主機名和當前 URL 的端口號
hostname 設置或返回當前 URL 的主機名
href 設置或返回完整的 URL
pathname 設置或返回當前 URL 的路徑部分
port 設置或返回當前 URL 的端口號
protocol 設置或返回當前 URL 的協議
search 設置或返回從?開始的 URL(查詢部分)

 

對象方法 描述
assign() 加載新的文檔。
reload() 重新加載當前文檔。
replace() 用新的文檔替換當前文檔。

其他 
ancestorOrigins:DOMStringList
toString() 
valueOf()
__proto__ :Object —— 原型鏈

 

以這個URL為例:http://www.baidu.com:80/demo/show?ver=1.0&id=6#imhere

  • href: "http://www.baidu.com:80/demo/show?ver=1.0&id=6#imhere"
  • protocol: "http:"
  • hostname: "www.baidu.com"
  • port: "80"
  • pathname: "/demo/show"
  • search: "?ver=1.0&id=6"
  • hash: "#imhere"
  • host: "www.baidu.com:80"               host = hostname + port
  • origin: "http://www.baidu.com:80"       origin = protocol + host

1.location.assign( url )
  location.assign('http://www.baidu.com'); 等同於 window.location = 'http://www.baidu.com'
  這種方式會講新地址放到瀏覽器歷史棧中,意味着轉到新頁面后“后退按鈕”仍可以回到該頁面。
2.location.replace( url )
  與assign方法一樣,但會從瀏覽器歷史棧中刪除本頁面,或者說當使用該方法時,新的 URL 將覆蓋 History 對象中的當前記錄,也就是說跳轉到新頁面后“后退按鈕”不能回到該頁面。
3.location.reload( force ) 重新載入當前頁面

  默認值false,false則從瀏覽器緩存中重載。會用 HTTP 頭 If-Modified-Since 來檢測服務器上的文檔是否已改變。如果文檔已改變,reload() 會再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。

  force為true時,以GET方式從服務器端重載,在http請求頭中不會包含緩存標記,因為無論文檔的最后修改日期是什么,它都會繞過緩存,從服務器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時按住 Shift 鍵的效果是完全一樣。(W3School)

 還有一種刷新頁面的方法: history.go(0)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM