1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          前端必備基礎知識

          來源:互聯網轉載 時間:2024-01-29 07:52:35

          前端必備基礎知識:window.location 詳解

          技能樹IT修真院?已認證帳號

          作者簡介:

          李中凱

          八年多工作經驗 前端負責人,

          擅長JavaScript/Vue。

          掘金文章專欄:KaysonLi 的個人主頁 - 專欄 - 掘金


          前端開發人員對window.location對象應該不陌生,通過它不但可以獲取當前頁面的地址信息,還可以修改某些屬性,實現頁面跳轉和刷新等。

          我們以一個常見的 URL 為例,看看window.location包含哪些屬性和方法。

          window.location.href     → 'https://www.jianshu.com/search?q=JS#comments'               .origin   → 'https://www.jianshu.com'               .protocol → 'https:'               .host     → 'www.jianshu.com'               .hostname → 'www.jianshu.com'               .port     → ''               .pathname → '/search/'               .search   → '?q=JS'               .hash     → '#comments'window.location.assign('url')               .replace('url')               .reload()               .toString()

          同事寫的很優秀的代碼
          附帶代碼
          function formatHashPath(_path, _params = {}) {  const { origin, pathname, hash } = window.location;  const [realHash, query] = hash.split('?');  const queryObj = qs.parse(query);  const queryString = qs.stringify({    ...queryObj,    ..._params,    disableNav: 'NO',  });  const result = `${origin}${pathname}${realHash || ''}${_path || ''}?${queryString || ''}`;  return result;}

          window.location 屬性一覽表

          window.location含義.originURL 基礎地址,包括協議名、域名和端口.protocol協議 (http:https:).host域名+端口號.hostname域名.port端口號.pathname路徑(以/開頭).search查詢字符串,以?開頭.hash頁面錨點,以#開頭.href完整 URL

          比較容易混淆的是hosthostname這兩個屬性,區別是前者還包含了端口號。

          修改屬性值

          以上屬性除了origin是只讀屬性,其他都可以修改。修改后的效果就是跳轉到相應的新地址。

          window.location.protocol = 'https'               .host     = 'localhost:8080'               .hostname = 'localhost'               .port     = '8080'               .pathname = 'path'               .search   = 'q=vue' // (不需要帶 ?)               .hash     = 'target' // (不需要帶 #)               .

          如何訪問 Location 對象

          window.location返回Location類型的一個實例對象,包含當前頁面的地址信息??梢酝ㄟ^以下幾種方式訪問:

          window.location          → Locationwindow.document.location → Locationdocument.location        → Locationlocation                 → Location

          這幾個變量都是等價的,因為它是全局變量。但是建議避免直接用location變量,因為很容易跟其他局部變量混淆,造成不必要的麻煩。比如:

          location.protocol; // 'https'function localFile() {  const location = '/vue';  return location.protocol;  // ? undefined  //     這里的局部變量 "location"覆蓋了全局變量}

          推薦用window.location,這樣一眼就可以看出用的是全局變量。

          window.location 方法一覽表

          window.location動作

          .assign()導航到指定 URL.replace()導航到指定 URL并刪除當前頁面的訪問記錄.reload()重新加載當前頁面.toString()返回 URL 字符串

          .toString().href都是返回 URL,它們之間有區別嗎?結果是一樣的,性能上稍微有點差別。通過 JSPerf 上的性能測試結果可以看出,.href稍快,通過window.location拼接字符串的形式速度最慢。

          .assign()和直接修改href是等價的,那么它們跟.replace()的區別是什么呢?

          .assign()在跳轉新地址的同時會留下當前頁面的訪問記錄,點擊瀏覽器返回按鈕會回到原來的頁面,.replace()則不會保留。

          .assign()執行流程:

          1. 打開空白頁2. 訪問 www.kaysonli.com (當前頁)3. 加載新頁面   `window.location.assign('https://www.w3schools.com')`4. 點擊瀏覽器返回按鈕5. 回到  www.kaysonil.com

          .replace()執行流程:

          1. 打開空白頁2. Go to www.kaysonli.com (當前頁)3. 加載新頁面   `window.location.assign('https://www.w3schools.com')`4. 點擊瀏覽器返回按鈕5. 回到   空白頁

          這個特性在用 JS 控制頁面導航時非常重要,稍不注意會造成意外的的頁面回退地址。.


          作者簡介:

          李中凱

          八年多工作經驗 前端負責人,

          擅長JavaScript/Vue。

          掘金文章專欄:KaysonLi 的個人主頁 - 專欄 - 掘金

          本文已經獲得李中凱老師授權轉發,其他人若有興趣轉載,請直接聯系作者授權。

          更多的學習資料,請看這里:

          http://www.jnshu.com/login/1/36856070?source=zhihu-article-lizhongkai

          發布于 2020-06-19 21:48 漫思
          標簽:window.location-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          北京西站換乘火車最晚買票時間?北京西站24小時售票,買票沒有最晚時間。開車前提前五分鐘停止檢票上車就行了。如果在北京西站換車,網上買票,不需要出站,省去了來回拖行李。直接檢票上車。北京西站售票廳營業時間?北京西站售票處24小時開放。工作人員24小時輪班,但是售票窗口晚上不像白天那么開放。北京西站共設91個售票窗口,分別位于車站北大廳南大廳地下一層和二層。在此基礎上,車站在南北廣場東西售票廳北二層入...

          32寸液晶電視尺寸?32寸電視一般包括底座尺寸:751*516*200(寬、高、厚),單屏尺寸:751*466*63.7(寬、高、厚)。32寸液晶電視的屏幕尺寸(以4:3的比例計算)長65.024cm,寬48.768cm (16:9),長69cm,寬39cm。通常大部分品牌的32寸電視的屏占比都是16,333,609。32寸液晶電視尺寸是多少?32英寸液晶電視尺寸:長65.024厘米,寬48.7...

          安徽八大名酒是哪八大?八大名酒是顧靖酒廠、口子窖、迎駕酒廠、宣酒、濉溪大曲、明光大曲、稻花香大曲、阜陽大曲等。,其中前四個最有名,在都很有名。安徽八大名酒是哪八大?1:安徽口子窖2.安徽顧靖酒廠3.安徽宣酒4.安徽迎駕酒廠5.安徽王文酒廠6:安徽醉三秋7.安徽皖酒8:安徽太和寺龍酒安徽八大名酒是哪八大?安徽名酒品牌有限公司。;黃金不能改變葡萄酒。 "金不換 "系列白酒有品、寶、精、綿、雅、香等30...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>