1. 程式人生 > 其它 >個人自學前端40-雜談-URL中#?&號,window.location物件

個人自學前端40-雜談-URL中#?&號,window.location物件

目錄

一.#號(錨點)

代表網頁中的一個位置。其右面的字元,就是該位置的識別符號。瀏覽器讀取這個URL後,會自動將print位置滾動至可視區域。
在VUE中,路由的實現方式有兩種,其中一種就是通過#識別符號進行頁面內導航從而實現路由切換。

  1. HTTP請求不包括#
    用來指導瀏覽器動作的,對伺服器端完全無用。
  2. .#後的字元
    在第一個#後面出現的任何字元,都會被瀏覽器解讀為位置識別符號。這意味著,這些字元都不會被髮送到伺服器端。
  3. 改變#不觸發網頁過載
    瀏覽器只會滾動到相應位置,不會重新載入網頁。
  4. 改變#會改變瀏覽器的訪問歷史
    每一次改變#後的部分,都會在瀏覽器的訪問歷史中增加一個記錄,使用"後退"按鈕,就可以回到上一個位置。這個特性對Ajax來說特別的有用,可以通過設定不同井號值,來表示不同的訪問狀態,並返回不同的內容給使用者。(注:在IE6和IE7下井號的改變不會增加歷史記錄。)
  5. 事件
    onhashchange事件:當#值發生變化時,就會觸發這個事件。
    • window.onhashchange = func;
    • <body οnhashchange="func();">
    • window.addEventListener("hashchange", func, false);
      window.location.hash:可以對URL中的井號引數進行修改

二.?號

  1. 連線作用
    通過?來帶引數,連線域名和引數。
  2. 清除快取
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

  1. hash
    返回:#first
    返回"#"之後的內容。
  2. host
    返回:baidu.com:80
    等於hostname + port。
  3. hostname
    返回:baidu.com
    伺服器的名字。
  4. href
    返回:http://baidu.com:80/index.php?name=kang&when=2011#first
    當前頁面的完整URL。
  5. origin
    返回:http://baidu.com:80/index.php

    '?'前邊的URL。
  6. pathname
    返回:/index.php
    URL中主機名後的部分。
  7. port
    返回:80
    埠。
  8. protocol
    返回:http:
    協議。
  9. search
    返回:name=kang&when=2011
    第一個"?"之後的內容。