關於location對象的簡單理解:
1.location對象中涵蓋了當前頁面(本頁面)或者更直接的說,是當前加載的這個html文檔的url信息
2.location對象作為window對象的一個屬性,可以通過window.location老訪問
下面順便介紹一些URL(資源定位符)的相關信息吧:
在浏覽器中URL通常由下面幾個部分組成的:
[協議][host][path][query]
協議:常見的協議有:
http:// 表示資源文件在web服務器上
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() //加載新文檔