window.location屬性用法及解決一個window.location.search為什麽為空的問題
通常用window.location該屬性獲取頁面 URL 地址:
1、什麽是window.location?
比如URL:http://b.a.com:88/index.php?name=kang&when=2011#first
window.location和document.location互相等價的,可以交換使用
location的8個屬性都是可讀寫的,但是只有href與hash的寫才有意義。
例如:改變location.href會重新定位到一個URL,而修改location.hash會跳到當前頁面中的anchor(<a id="name">或者<div id="id">等)名字的標記(如果有),而且頁面不會被重新加載
註意:URL:http://b.a.com:88/index.php?name=kang&how=#when=2011#first
search:"?name=kang&how=" 第一個"?"之後
hash:"#when=2011#first" 第一個"#"之後的內容
2,為什麽 window.location.search 為空?
註意上面的search和hash的區別,如果URL中 ?之前有一個 # 比如:“http://localhost:63342/index.html#/version?type=35&id=5”,那麽使用window.location.search得到的就是空(“”)。因為“?type=35&id=5”串字符是屬於“#/version?type=35&id=5”這個串字符的,也就是說查詢字符串search只能在取到“?”後面和“#”之前的內容,如果“#”之前沒有“?”search取值為空。
3、JS 腳本捕獲頁面 GET 方式請求的參數?
其實直接使用 window.location.search 獲得,然後通過 split 方法結合循環遍歷自由組織數據格式。大概處理如下:
var searchURL = window.location.search;
searchURL = searchURL.substring(1, searchURL.length);
var targetPageId = searchURL.split("&")[0].split("=")[1];
window.location屬性用法及解決一個window.location.search為什麽為空的問題