整合營銷服務商

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

          免費咨詢熱線:

          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,一樣可以解決這個問題。


          主站蜘蛛池模板: 精品久久一区二区三区| 色一情一乱一伦一区二区三区 | 不卡无码人妻一区三区音频| 久夜色精品国产一区二区三区| 国产在线精品一区免费香蕉| 3d动漫精品成人一区二区三| 国产经典一区二区三区蜜芽| 成人丝袜激情一区二区| 国产精品成人99一区无码| 国产免费一区二区三区| 亚洲天堂一区二区三区| 国产精品美女一区二区视频 | 日本香蕉一区二区三区| 国模无码一区二区三区不卡| 色综合视频一区二区三区44| 香蕉一区二区三区观| 天海翼一区二区三区高清视频| 美女福利视频一区| 精品亚洲一区二区三区在线观看| 亚洲一区在线免费观看| 大伊香蕉精品一区视频在线| 精品3d动漫视频一区在线观看| 中文无码一区二区不卡αv | 国产一区二区三区在线免费| 伊人色综合视频一区二区三区| 日本成人一区二区三区| 一区二区三区无码高清视频| 国产亚洲福利精品一区二区| 中文乱码字幕高清一区二区| 亚洲一区无码中文字幕乱码| 日本一区二区在线播放| 亚洲毛片不卡av在线播放一区| 91一区二区三区| 国产成人一区二区精品非洲| 日韩a无吗一区二区三区| 日韩精品一区二区三区国语自制 | 中文精品一区二区三区四区| 亚洲AV成人一区二区三区在线看| 国产精品女同一区二区久久| 亚洲Aⅴ无码一区二区二三区软件| 亚洲中文字幕乱码一区|