2016-04-26 16 views
3

私はJavascriptのURLから取得パラメータを読みたいと思います。私はthisJavascriptでURLパラメータを取得できません '&'

var getUrlParameter = function getUrlParameter(sParam) { 
    var sPageURL = decodeURIComponent(window.location.search.substring(1)), 
     sURLVariables = sPageURL.split('&'), 
     sParameterName, 
     i; 

    for (i = 0; i < sURLVariables.length; i++) { 
     sParameterName = sURLVariables[i].split('='); 

     if (sParameterName[0] === sParam) { 
      return sParameterName[1] === undefined ? true : sParameterName[1]; 
     } 
    } 
}; 

を発見した問題は、私のPARAMTERこれであることを、次のとおりです!

iFZycPLh%Kf27ljF5Hkzp1cEAVR%oUL3 $ MCE & @ XFcdHBb * CRyKkAufgVc32 hUni

私はすでにURLENCODE製したがって、これは:

iFZycPLh%25Kf27ljF5Hkzp1cEAVR% 25oUL3%24Mce%26%40XFcdHBb * CRyKkAufgVc32 hUni

しかし、それでもまだ、私はgetUrlParameter()関数を呼び出した場合、私はちょうど、結果としてこれを取得:!

iFZycPLh%Kf27ljF5Hkzp1cEAVR%oUL3 $ Mce

どのように私はそれを修正することができます知っていますか?

答えて

4

あなたはsParameterName[0]sParameterName[1]に代わりのsearch.substring(1))全体にdecodeURIComponentを呼び出す必要があります。

var getUrlParameter = function getUrlParameter(sParam) { 
    var sPageURL = window.location.search.substring(1), 
     sURLVariables = sPageURL.split('&'), 
     sParameterName, 
     i; 

    for (i = 0; i < sURLVariables.length; i++) { 
     sParameterName = sURLVariables[i].split('='); 

     var key = decodeURIComponent(sParameterName[0]); 
     var value = decodeURIComponent(sParameterName[1]); 

     if (key === sParam) { 
      return value === undefined ? true : value; 
     } 
    } 
}; 

(すなわちコンポーネントそれのに)これは、あなたがにリンク答えにzakinsterさんのコメントに記載されています。

+0

ありがとうございます!ああ、私はZakinsterからのそのコメントを読まなかった。私の側のミス。 *UPS* – progNewbie

関連する問題