JavaScript中的Location地址對象

來源:互聯網
上載者:User

location 地址對象 它描述的是某一個視窗對象所開啟的地址。要表示當前視窗的地址,只需要使用“location”就行了;若要表示某一個視窗的地址,就使用“<視窗對象>.location”。先前寫了一片用window.location.href實現重新整理另個架構頁面 ,特此我看了一下locaiton的詳細用法,對此有點改進,具體如下:

注意:屬於不同協議或不同主機的兩個地址之間不能互相引用對方的 location 對象,這是出於安全性的需要。例如,當前視窗開啟的是“www.a.com”下面的某一頁,另外一個視窗(對象名為:bWindow)開啟的是“www.b.com”的網頁。如果在當前視窗使用“bWindow.location”,就會出錯:“沒有許可權”。這個錯誤是不能用錯誤處理程式(Event Handler,參閱 onerror 事件)來接收處理的。

第一、簡單介紹一下location屬性、用法以及相關樣本:
Location
包含了關於當前 URL 的資訊。location對象描述了與一個給定的 Window 對象關聯的完整 URL。location 對象的每個屬性都描述了 URL 的不同特性。
通常情況下,一個 URL 會有下面的格式:協議//主機:連接埠/路徑名稱#雜湊標識?搜尋條件
例如:http://www.ijavascript.cn/jiaocheng/index.html#topic1?x=7&y=2 這些部分是滿足下列需求的:

“協議”是 URL 的起始部分,直到包含到第一個冒號。

“主機”描述了主機和網域名稱,或者一個網路主機的 IP 位址。

“連接埠”描述了伺服器用於通訊的通訊連接埠。

路徑名稱描述了 URL 的路徑方面的資訊。

“雜湊標識”描述了 URL 中的錨名稱,包括雜湊掩碼(#)。此屬性只應用於 HTTP 的 URL。

“搜尋條件”描述了該 URL 中的任何查詢資訊,包括問號。此屬性只應用於 HTTP 的 URL。“搜尋條件”字串包含變數和值的配對;每對之間由一個“&”串連。

屬性概覽

protocol 返回地址的協議,取值為 'http:','https:','file:' 等等。

hostname 返回地址的主機名稱,例如,一個“http://www.microsoft.com/china/”的地址,location.hostname == 'www.microsoft.com'。

port 返回地址的連接埠號碼,一般 http 的連接埠號碼是 '80'。

host 返回主機名稱和連接埠號碼,如:'www.a.com:8080'。

pathname 返迴路徑名,如“http://www.a.com/b/c.html”,location.pathname == 'b/c.html'。

hash 返回“#”以及以後的內容,如“http://www.a.com/b/c.html#chapter4”,location.hash == '#chapter4';如果地址裡沒有“#”,則返回Null 字元串。

search 返回“?”以及以後的內容,如“http://www.a.com/b/c.asp?selection=3&jumpto=4”,location.search == '?selection=3&jumpto=4';如果地址裡沒有“?”,則返回Null 字元串。

href 返回以上全部內容,也就是說,返回整個地址。在瀏覽器的地址欄上怎麼顯示它就怎麼返回。如果想一個視窗對象開啟某地址,可以使用“location.href = '...'”,也可以直接用“location = '...'”來達到此目的。

方法概覽

reload() 相當於按瀏覽器上的“重新整理”(IE)或“Reload”(Netscape)鍵。

replace() 開啟一個 URL,並取代曆史對象中當前位置的地址。用這個方法開啟一個 URL 後,按下瀏覽器的“後退”鍵將不能返回到剛才的頁面。

二、location之頁面跳轉js如下:
//簡單跳轉
function gotoPage(url) {
// eg. var url = "newsview.html?catalogid="+catalogID+"&pageid="+pageid;
window.location = url;
}

// 對location用法的升級,為單個頁面傳遞參數
function goto_catalog(iCat) {
if(iCat<=0) {
top.location = "../index.aspx"; // top出去
} else {
window.location = "../newsCat.aspx?catid="+iCat;
}
}

// 對指定架構進行跳轉頁面,二種方法皆可用
function goto_iframe(url) {
parent.mainFrame.location = "../index.aspx"; //
// parent.document.getElementById("mainFrame").src = "../index.aspx";// use dom to change page // 同時我增加了dom的寫法
}

// 對指定架構進行跳轉頁面,因為 parent.iframename.location="../index.aspx"; 方法不能實行,主要是 "parent.iframename" 中的iframename在js中被預設為節點,而不能把傳遞過來的參數轉換過來,所以用dom實現了該傳遞二個參數的架構跳轉頁面,希望那位仁兄不吝賜教!
function goto_iframe(iframename,url) {
parent.document.getElementById(iframename).src = "../index.aspx";// use dom to change page by iframeName
//}

// 回到首頁
function gohome() {
top.location = "/index.aspx";
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.