javascript中的獲取URL中指定的查詢字符串

function getSearchString(key) {
    // 獲取URL中?之後的字符
    var str = location.search;
    str = str.substring(1,str.length);
    
    // 以&分隔字符串,獲得類似name=123這樣的元素數組
    var arr = str.split("&");
    var obj = new Object();
    
    // 將每一個數組元素以=分隔並賦給obj對象    
    for(var i = 0; i < arr.length; i++) {
        var tmp_arr = arr[i].split("=");
        obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]);
    }
    return obj[key];
}


注:decodeURIComponent() 函數可對 encodeURIComponent() 函數編碼的 URI 進行解碼。

Location 對象包含有關當前 URL 的信息

Location 對象是 Window 對象的一個部分,可通過 window.location 屬性來訪問。

w3c文檔:

Location 對象屬性

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

Location 對象方法

屬性 描述
assign() 加載新的文檔。
reload() 重新加載當前文檔。
replace() 用新的文檔替換當前文檔。

Location 對象描述

Location 對象存儲在 Window 對象的 Location 屬性中,表示那個窗口中當前顯示的文檔的 Web 地址。它的 href 屬性存放的是文檔的完整 URL,其他屬性則分別描述了 URL 的各個部分。這些屬性與 Anchor 對象(或 Area 對象)的 URL 屬性非常相似。當一個 Location 對象被轉換成字符串,href 屬性的值被返回。這意味着你可以使用表達式 location 來替代 location.href。

不過 Anchor 對象表示的是文檔中的超鏈接,Location 對象表示的卻是瀏覽器當前顯示的文檔的 URL(或位置)。但是 Location 對象所能做的遠遠不止這些,它還能控制瀏覽器顯示的文檔的位置。如果把一個含有 URL 的字符串賦予 Location 對象或它的 href 屬性,瀏覽器就會把新的 URL 所指的文檔裝載進來,並顯示出來。

除了設置 location 或 location.href 用完整的 URL 替換當前的 URL 之外,還可以修改部分 URL,只需要給 Location 對象的其他屬性賦值即可。這樣做就會創建新的 URL,其中的一部分與原來的 URL 不同,瀏覽器會將它裝載並顯示出來。例如,假設設置了Location對象的 hash 屬性,那麼瀏覽器就會轉移到當前文檔中的一個指定的位置。同樣,如果設置了 search 屬性,那麼瀏覽器就會重新裝載附加了新的查詢字符串的 URL。

除了 URL 屬性外,Location 對象的 reload() 方法可以重新裝載當前文檔,replace() 可以裝載一個新文檔而無須爲它創建一個新的歷史記錄,也就是說,在瀏覽器的歷史列表中,新文檔將替換當前文檔。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章