個人自學前端40-雜談-URL中#?&號,window.location物件
阿新 • • 發佈:2021-10-29
目錄
一.#號(錨點)
代表網頁中的一個位置。其右面的字元,就是該位置的識別符號。瀏覽器讀取這個URL後,會自動將print位置滾動至可視區域。
在VUE中,路由的實現方式有兩種,其中一種就是通過#識別符號進行頁面內導航從而實現路由切換。
- HTTP請求不包括#
用來指導瀏覽器動作的,對伺服器端完全無用。 - .#後的字元
在第一個#後面出現的任何字元,都會被瀏覽器解讀為位置識別符號。這意味著,這些字元都不會被髮送到伺服器端。 - 改變#不觸發網頁過載
瀏覽器只會滾動到相應位置,不會重新載入網頁。 - 改變#會改變瀏覽器的訪問歷史
每一次改變#後的部分,都會在瀏覽器的訪問歷史中增加一個記錄,使用"後退"按鈕,就可以回到上一個位置。這個特性對Ajax來說特別的有用,可以通過設定不同井號值,來表示不同的訪問狀態,並返回不同的內容給使用者。(注:在IE6和IE7下井號的改變不會增加歷史記錄。) - 事件
onhashchange事件:當#值發生變化時,就會觸發這個事件。window.onhashchange = func;
<body οnhashchange="func();">
window.addEventListener("hashchange", func, false);
window.location.hash:可以對URL中的井號引數進行修改
二.?號
- 連線作用
通過?來帶引數,連線域名和引數。 - 清除快取
http://www.xx.com/index.html
http://www.xx.com/index.html?test123123
兩個url開啟的頁面一樣,但是後面這個有問號,說明不呼叫快取的內容,而認為是一個新地址,重新讀取。
三.& 號
不同引數的間隔符
四.window.location物件
例:http://baidu.com:80/index.php?name=kang&when=2011#first
- hash
返回:#first
返回"#"之後的內容。 - host
返回:baidu.com:80
等於hostname + port。 - hostname
返回:baidu.com
伺服器的名字。 - href
返回:http://baidu.com:80/index.php?name=kang&when=2011#first
當前頁面的完整URL。 - origin
返回:http://baidu.com:80/index.php
'?'前邊的URL。 - pathname
返回:/index.php
URL中主機名後的部分。 - port
返回:80
埠。 - protocol
返回:http:
協議。 - search
返回:name=kang&when=2011
第一個"?"之後的內容。