location.search和location.hash是JavaScript中URL對象的兩個屬性,用于獲取和設置URL中的查詢字符串和哈希值。
用于獲取URL中的查詢字符串,即?后面的部分。
返回的是一個字符串,包含所有查詢參數。
可以通過location.search.substring(1)來獲取不包含?的查詢參數字符串。
可以通過location.search.slice(1)來獲取不包含?的查詢參數字符串。
用于獲取URL中的哈希值,即#后面的部分。
返回的是一個字符串,包含所有哈希值。
可以通過location.hash.substring(1)來獲取不包含#的哈希值字符串。
可以通過location.hash.slice(1)來獲取不包含#的哈希值字符串。
使用場景:
需要注意的問題:
修改location.search或location.hash的值,會導致頁面URL的變化,進而觸發瀏覽器的頁面刷新。
當URL中有查詢參數時,location.search會返回?后面的部分,而不包括#及其后面的部分;當URL中有哈希值時,location.hash會返回#后面的部分,包括#本身。
location.search和location.hash都是只讀屬性,不能直接賦值修改,需要通過賦值給location.href來修改URL。
在某些情況下,location.search和location.hash可能會被瀏覽器URL編碼,需要進行解碼處理才能獲取正確的值。
綜上所述,location.search和location.hash是用于獲取URL中查詢字符串和哈希值的屬性,適用于從URL中獲取特定信息或進行頁面跳轉的場景。