關於location物件的簡單理解:
1.location物件中涵蓋了目前頁面(本頁)或更直接的說,是目前載入的這個html文件的url資訊
2.location物件作為window物件的屬性,可以透過window.location老來存取
下面順便介紹一些URL(資源定位符)的相關資訊:
在瀏覽器中URL通常由下面幾個部分組成的:
[協定][host][path][query]
協定:常見的協定有:
http:// 表示資源檔案在網頁伺服器上
ftp://表示資源檔案在網路上的ftp伺服器
host:主機名稱以及連接埠號碼,例如本機tomcat常用的host:localhost:8080
path:專案的路徑訊息,一般是由「/」以及字元組成的,"/"為上下級關係
query:一般是以「?」開頭的,後面加上一些歌鍵值對(key=value)的形勢,多個鍵值對時用「&」隔開,可用於動態網頁,傳參數至伺服器端,用於後台有關操作,查詢資料庫條件等等,提交表格資料等等,都可以放在這裡提交,涉及安全性的東西需要另外搞定加密或透過其他方式。 。 。 。
query的後面還可以加入以「#」號開頭的參數,但是目前沒用到這個東西,暫時不隨便發表言論
location物件屬性:
1.href屬性:當前頁面的完整url信息,包括協議,主機名,端口號,查詢參數,#信息等等等,完整的都包含了
2.host屬性:主機名稱和連接埠號碼,例如localhost:8080本機
3.hostname:主機名稱
4.port:url中的連接埠號碼
5.pathname:url中的路徑內容包含「/」的那部分內容
6.protocol:協定
7.serach:以「?」開始的query部分內容
8.hash:以「#」開始的內容
location常見的用法
很顯然,除了可以給開發者便捷的屬性資訊以外,還有一個更重要和常用的用途
重新載入頁面,可以用來刷新文件內容,但是更重要的用途是,修改href資訊之後,重新載入文件內容
location.href:在賦值之後,瀏覽器會根據這個指定的全新的url,刷新文件的內容
location.reload():重新載入文件
協助我們解決頁面跨域的問題:
1.刷新目前的頁面
window.location.href =url//我習慣用這個方法
self.location.href =url
location.href =url
上述三個方法都可用來刷新當前頁面(根據指定的url重新加載,可以是另一個全新的文檔,替換當前文檔)
2.父親頁面中使用iframe包含了子頁面時
父頁刷新子頁:
window.frames["id"].location.reload()//id為頁中iframe的id
3.子頁面刷新父頁
parant.location.reload()
self.opener.location.reload()
方法有很多,隨著以後的實際使用繼續總結! ! ! !
其他常見方法:
location.replace() //使用新文件取代目前文件
location.assign() //載入新文件