整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JS:獲取頁面傳參,如何指定名稱獲取?或者全都要?

          JS:獲取頁面傳參,如何指定名稱獲取?或者全都要?

          入我的主頁,查看更多JS的分享!
          我的代碼有多短,本文章就有多短!(?_?)

          1. 思路

          先獲取瀏覽器參數的字符串,判斷并轉為對象,如果沒有指定參數名,直接返回該對象。

          2. 代碼

          需要說的話都在注釋里了,先貼上代碼(好像明白了程序員為啥話不多)

          /**
           * 獲取:當前鏈接的參數
           * 若不指定參數,則以對象的形式返回全部參數
           * 若指定參數名,則只返回對應的值
           * 處理:中文解碼
           * 測試:"?id=123&name=哈哈哈"
           * 結果:{id: "123", name: "哈哈哈"}
           */
          var getLocationParam=(name)=>{
            let param=window.location.search.substr(1);
            if (!param) {
              return undefined;
            } else {
              let pArr=param.split("&");
              let res={};
              for (let i=0; i < pArr.length; i++) {
                let item=pArr[i].split("=");
                res[item[0]]=item[1] ? decodeURI(item[1]) : null;
              }
              return !name ? res: res[name];
            }
          };

          如果參數有中文,直接用"decodeURI()",而"unescape()"并不適用。(測試了QQBrowser、Chrome、IE9-11)

          運行:

          console.log(getLocationParam("id"));
          //輸出:123
          console.log(getLocationParam("name"));
          //輸出:哈哈哈
          console.log(getLocationParam("due"));
          //輸出:undefined
          console.log(getLocationParam());
          //輸出:{id: "123", name: "哈哈哈"}

          網上有一段代碼,是用正則來獲取指定的參數,雖然只能獲取指定的參數。嘛,直接貼上代碼看看吧:

          取url參數有兩種情況:

          應用場景一:內部頁面之間互相傳值
          假如要從A頁面跳轉到B頁面,

          this.$router.push({path:"/B",query:{
              Id : this.tId ,
              ...
          }})
          

          進入B頁面之后,

          this.Id=this.$route.query.Id;
          

          就能將A頁面的id傳入B頁面,進行參數獲取。

          應用場景二:外系統跳轉Vue項目時自帶參數
          例如:
          https://shq5785.blog.csdn.net/list?Id=sunhuaqiang1#/

          外系統跳轉進入的url會在Vue項目編譯后自動添加 “#/”后綴 ,其中帶的參數在 “#/”之前,所以應用場景一中的方法無法獲取,只能應用JS的方法來獲取,解析功能函數如下所示:

          getURLParams(url) {
              let param=url.split('#')[0];           //獲取#/之前的字符串
              var paramContent=param.split('?')[1];  //獲取?之后的參數字符串
              var paramsArray=paramContent.split('&');    //參數字符串分割為數組
              var paramResult={};
              //遍歷數組,拿到json對象
              paramsArray.forEach((item, index, paramsArray)=> {
          		paramResult[paramsArray[index].split('=')[0]]=paramsArray[index].split('=')[1];
              })
              return paramResult;
          }
          

          調用方式如下:

          this.getURLParams(window.location.href)

          vue-router獲取url傳參 | 《Linux就該這么學》 (linuxprobe.com)

          ue單頁面開發中路由傳參大家不陌生吧!但是有時候會出現跳轉過后帶過的參數頁面刷新五數據。

          今天我這說的是路由傳參是 對象。

          路由傳值parmas對象

          courseData參數名后面顯示的值為亂碼

          傳到頁面能獲取值 但是刷新后頁面無法看到數據 ,這里其實是因為傳過的對象必須是要對象字符串才不會出現這個問題。

          JSON.stringify把對象轉換成字符串或者也可以拼接成字符串

          跳轉該組件獲取數據

          把字符串對象解析然后獲取數據

          url里面的參數

          這樣你跳轉的頁面刷新 數據就一直存在了。

          當然這里還可以用 HTML5本地儲存數據sessionStorage,一樣可以解決這個問題。


          主站蜘蛛池模板: 亚洲日韩精品无码一区二区三区 | 无码av免费毛片一区二区 | 国产视频一区二区在线观看| 久久无码人妻精品一区二区三区| 亚洲sm另类一区二区三区| 亚洲一区二区中文| 久久无码一区二区三区少妇| 一区二区三区四区在线播放 | 亚洲一区动漫卡通在线播放| 中文字幕一区二区视频| 一区二区在线视频免费观看| 国产在线步兵一区二区三区| 亚洲av乱码一区二区三区按摩| 国产经典一区二区三区蜜芽| 日韩免费无码视频一区二区三区| 国精无码欧精品亚洲一区| 国产日韩精品一区二区三区在线 | 3d动漫精品啪啪一区二区中文| 精品久久一区二区| 日韩亚洲AV无码一区二区不卡| 无码人妻精品一区二区三区99仓本 | 亚洲日本va午夜中文字幕一区| 亚洲日韩精品一区二区三区| 国产伦理一区二区| 久久久久人妻一区二区三区vr| 人妻体内射精一区二区三四| 亚洲高清日韩精品第一区| 亚洲av午夜福利精品一区| 久久国产免费一区| 亚洲综合色一区二区三区小说| 精品无码人妻一区二区免费蜜桃 | 久久人做人爽一区二区三区| 成人精品一区二区户外勾搭野战| 一本一道波多野结衣一区| 成人免费一区二区无码视频 | 国产日韩精品一区二区三区在线 | 国产精品亚洲高清一区二区| 夜夜添无码一区二区三区| 91福利国产在线观一区二区| 亚洲午夜一区二区电影院| 国产精品亚洲一区二区三区 |