1. 程式人生 > >window.location屬性用法及解決一個window.location.search為什麽為空的問題

window.location屬性用法及解決一個window.location.search為什麽為空的問題

循環 圖片 意義 註意 腳本 htm pre ear alt

  通常用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為什麽為空的問題