js獲取當前url位址引數中文亂碼問題

2022-04-29 02:12:06 字數 1191 閱讀 2897

專案中的頁面跳轉後獲取url引數的問題,因為是抽取出來的放到獨立頁面上的模組,貌似沒辦法用 angular 本身自帶的 $stateparams 來獲取跳轉攜帶引數,只能通過當前頁面的url獲取,window.location.href 。

專案中支援通話列表**內容單項雙擊跳轉開啟新頁面,後來抽出獨立頁面也支援了url位址列直接輸入介面跟引數直接跳轉,引數也有中文情況,傳輸中文時遇到了點小問題:前台底層獲取的url的中文是亂碼。

開始以為是後台請求介面時,中文引數轉碼有問題,前台是有封裝乙個獲取並整理url引數到乙個物件的方法的,輸出後的物件中對應中文的屬性值完全是亂碼,怎麼辦呢?解吧,decodeuri,沒解開。後來看封裝好的獲取引數整理成乙個物件的方法時,發現了問題,居然將獲取的值進行了兩次轉碼,好坑呀~

這裡記錄一下前台解析url整理成物件的方法。

//

首先獲取到當前頁面的位址列資訊

var url =window.location.href;

console.log(url);

var obj ={};

var reg = /\?/;

if(url.match(reg))

}}console.log(obj);

最後儲存物件屬性時,可以不對 name 進行轉碼,因為一般 name 都為 key 值,通過使用 key 來獲得其對應的 value ,所以 value 的值才是廣泛的多樣的,會有中文值的可能,但是估計不會有後台將 key 值也存成中文,誰見過鍵值對中 key 是用中文來使用的?

2021-03-29

包裝成方法及優化,避免相關 obj 被汙染,可以使用閉包

function

handleparamsfnc();

var readytoget = false

;

return

function

(attr) );

readytoget = true

; }

return

args[attr];

}}

var getvaluebyattr =handleparamsfnc();

console.log(getvaluebyattr('name'));

console.log(getvaluebyattr('age'));

js 獲取 url 中文引數

在網上看了一篇文章,有這樣的 把url中傳遞的引數放在乙個字典中作為返回值。function getrequest if url.indexof 1 return therequest 用著不錯,感謝貢獻者。不過我在判斷引數是否等於乙個中文值的時候遇到了問題。在chrome中除錯,發現原來的引數是 ...

JS獲取當前 指定URL引數

首先通過 document.location 獲得當前訪問網頁的 其次用 split 方法通過 把 分為兩部分。如果 中有引數 arrobj.length 1 再用 split 方法通過 把每個引數分開 接著用 for 迴圈檢查引數中是否有與要找的引數相同引數 如果有,則返回引數的值 如果沒有,繼續...

JS獲取當前網頁url的引數

function getqueryvariable variable var query window.location.search.substring 1 var vars query.split for var i 0 i例項 呼叫getqueryvariable id 返回 1。呼叫getq...