GET පරාමිතීන්ගෙන් වටිනාකම ලබා ගන්නේ කෙසේද?


1358

පහත දැක්වෙන පරිදි GET පරාමිතීන් සහිත URL මා සතුව ඇත:

www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5 

මට එහි සම්පූර්ණ වටිනාකම ලබා ගත යුතුයි c. මම URL එක කියවීමට උත්සාහ කළ නමුත් මට ලැබුණේ එය පමණි m2. ජාවාස්ක්‍රිප්ට් භාවිතයෙන් මා මෙය කරන්නේ කෙසේද?


ඔබ නව පිළිතුරක් පළ කිරීමට පෙර, මෙම ප්‍රශ්නයට පිළිතුරු 50+ ක් දැනටමත් ඇති බව සලකන්න. කරුණාකර, ඔබගේ පිළිතුර දැනට පවතින පිළිතුරු අතර නොමැති තොරතුරු සඳහා දායක වන බවට වග බලා ගන්න.
janniks

Answers:


2059

ජාවාස්ක්රිප්ට් විමසුම string පරාමිතීන් කටයුතු සඳහා ඉදි කිසිවක් නැත.

(නවීන) බ්‍රව්සරයක කේත ධාවනය වන ඔබට URLවස්තුව භාවිතා කළ හැකිය (එය බ්‍රව්සර් විසින් JS වෙත සපයන API වල කොටසකි):

var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5"; //window.location.href
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c);


පැරණි බ්‍රව්සර් සඳහා (ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් ද ඇතුළුව), ඔබට මෙම පොලිෆිල් එක හෝ කේතය භාවිතා කළ හැකිය URL.

ඔබට ප්‍රවේශ විය හැකි අතර location.search, එමඟින් ඔබට ?URL සිට අවසානය දක්වා හෝ කොටස් හඳුනාගැනීමේ (#foo) ආරම්භය ලබා දෙනු ඇත.

එවිට ඔබට මෙය විග්‍රහ කළ හැකිය:

function parse_query_string(query) {
  var vars = query.split("&");
  var query_string = {};
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    var key = decodeURIComponent(pair[0]);
    var value = decodeURIComponent(pair[1]);
    // If first entry with this name
    if (typeof query_string[key] === "undefined") {
      query_string[key] = decodeURIComponent(value);
      // If second entry with this name
    } else if (typeof query_string[key] === "string") {
      var arr = [query_string[key], decodeURIComponent(value)];
      query_string[key] = arr;
      // If third or later entry with this name
    } else {
      query_string[key].push(decodeURIComponent(value));
    }
  }
  return query_string;
}

var query_string = "a=1&b=3&c=m2-m3-m4-m5";
var parsed_qs = parse_query_string(query_string);
console.log(parsed_qs.c);

වත්මන් පිටුවේ URL වෙතින් ඔබට විමසුම් දාමය ලබා ගත හැකිය:

var query = window.location.search.substring(1);
var qs = parse_query_string(query);

පැරණි බ්‍රව්සර් සඳහා, ඔබට ඊට අමතරව පොලිෆිල් එකක්URL අවශ්‍ය විය හැකිය URLSearchParams. නැතහොත් var c = url.searchParams.get("c");ඉහත පිළිතුරේ ඇති පේළිය ආදේශ කිරීමෙන් ඔබට මෙම ගැටළුව මඟහරවා ගත හැකිය var c = new URLSearchParams(window.location.search).get("c");.
evanrmurphy

'64 'අඩංගු අගයන් සඳහා parse_query_string අසමත් වනු ඇත. පහත දැක්වෙන නිත්‍ය නිරාවරණය භාවිතා කරන අනුවාදය වඩා හොඳින් ක්‍රියා කරයි.
මැනෙල් ක්ලෝස්

7
Am ජම්ලන්ඩ් - නියත වශයෙන්ම එය නොකරන්න. එය දේවල් බිඳ දමනු ඇත. මෙන්න සජීවී නිරූපණයක් new URL() එහි තර්කය ලෙස නිසි ලෙස කේතනය කළ URL එකක් ලැබෙනු ඇතැයි අපේක්ෂා කරයි. සම්පූර්ණ URL එකක් නොව URL decodeURIComponentඑකක අංගයක් සම්මත කිරීමට බලාපොරොත්තු වේ .
ක්වෙන්ටින්

@ ක්වෙන්ටින් මම විවිධ විශේෂ අක්ෂර පරීක්ෂා කර ඇති අතර ඔබ නිවැරදි බව මට පෙනේ. decodeURIComponentමෙම අවස්ථාවේ දී භාවිතා නොකළ යුතුය
ජෑම්ලන්ඩ්

1
මෙම parse_query_stringකාර්යය ද්විත්ව විකේතනය කරන්නේ value. මෙම =නිකුත් කළ දෙවන පරාමිතිය එකතු කිරීම මඟින් @ManelClos විසින් සඳහන් ආමන්ත්රණය කළ හැකි 2( limit) වෙත vars[i].split().
ජේක්

243

මා දැක ඇති බොහෝ ක්‍රියාත්මක කිරීම් වල නම් සහ අගයන් URL විකේතනය කිරීම මග හැරේ.

නිසි URL- විකේතනය කරන සාමාන්‍ය උපයෝගිතා ශ්‍රිතයක් මෙන්න:

function getQueryParams(qs) {
    qs = qs.split('+').join(' ');

    var params = {},
        tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
    }

    return params;
}

//var query = getQueryParams(document.location.search);
//alert(query.foo);

3
මෙම කේතය ක්‍රියා නොකරයි. වත්මන් දර්ශකය නැවත සැකසෙන ලූප් අර්ථ දැක්වීමේදී රීජෙක්ස් සම්පාදනය කර ඇති නිසා එය අසීමිත පුඩුවක් නිර්මාණය කරයි. ඔබ රීජෙක්ස් ලූපයෙන් පිටත විචල්‍යයකට දැමුවහොත් එය නිසියාකාරව ක්‍රියාත්මක වේ.
maxhawkins

3
xmaxhawkins: එය සමහර බ්‍රව්සර් වල ක්‍රියාත්මක වන අතර අනෙක් ඒවා අනන්ත පුඩුවක් බවට පත්වේ. ඔබ ඒ සම්බන්ධයෙන් අඩක් හරි. මම හරස් බ්‍රව්සරය සඳහා කේතය නිවැරදි කරමි. එය පෙන්වා දීමට ස්තූතියි!
අටෙස් ගෝරල්

3
@ZiTAL මෙම ශ්‍රිතය භාවිතා කළ යුත්තේ URL එකේ විමසුම් කොටස සමඟ මිස සමස්ත URL එකෙන් නොවේ. අදහස් දැක්වීමේ භාවිත උදාහරණය පහතින් බලන්න.
අටෙස් ගෝරල්

1
Ar හාවි සිද්ධි සංවේදීතාව විමසුම් පරාමිතීන් ගැන සැලකිලිමත් නොවේ. එය යෙදුම්-විශේෂිත දෙයක් මෙන් හෝ විමසුම් පරාමිති නිස්සාරණයට ඉහළින් යෙදිය යුතුය.
අටෙස් ගෝරල්

7
ඇයි qs.split('+').join(' ');සහ නැත්තේ qs.replace(/\+/g, ' ');?
FlameStorm

237

මූලාශ්රය

function gup( name, url ) {
    if (!url) url = location.href;
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( url );
    return results == null ? null : results[1];
}
gup('q', 'hxxp://example.com/?q=abc')

8
මම මෙම විකල්පයට වඩාත්ම කැමතියි, නමුත් ශුන්‍ය හෝ ප්‍රති result ලය ලබා දීමට කැමැත්තක් දක්වන්න, නමුත් හිස් නූලක් නොවේ.
ජේසන් ත්‍රෙෂර්

1
ඔබට අමතර ගැලවීමේ අක්ෂර කිහිපයක් ඇති බව පෙනේ. "\\[" විය යුතුයි "\[". ඒවා නිත්‍ය නූල් බැවින්, [සහ] ගැලවීමට අවශ්‍ය නැත.
එරික්පී

මෙය සංවේදී නොවේ. එය සංවේදී නොවන බවට පත් කිරීම සඳහා මම "i" එකතු කරන්නේ කොතැනින්ද?
zeta

ඇඟවීම් (gup ('UserID', window.location.href));
අරුන් ප්‍රසාද් ඊඑස්

6
otmottie dead link
ආරාධනා කරන්න

206

එක් පරාමිතියක් පමණක් පරීක්ෂා කිරීමට මෙය පහසු ක්‍රමයකි:

උදාහරණ URL:

http://myserver/action?myParam=2

උදාහරණ ජාවාස්ක්‍රිප්ට්:

var myParam = location.search.split('myParam=')[1]

URL හි "myParam" පවතී නම් ... විචල්ය myParam හි "2" අඩංගු වේ, එසේ නොමැති නම් එය නිර්වචනය නොකෙරේ.

සමහර විට ඔබට පෙරනිමි අගයක් අවශ්‍ය විය හැකිය, එවැනි අවස්ථාවක:

var myParam = location.search.split('myParam=')[1] ? location.search.split('myParam=')[1] : 'myDefaultValue';

යාවත්කාලීන කිරීම: මෙය වඩා හොඳින් ක්‍රියා කරයි:

var url = "http://www.example.com/index.php?myParam=384&login=admin"; // or window.location.href for current url
var captured = /myParam=([^&]+)/.exec(url)[1]; // Value is in [1] ('384' in our case)
var result = captured ? captured : 'myDefaultValue';

URL පරාමිතීන්ගෙන් පිරී තිබියදීත් එය නිවැරදිව ක්‍රියා කරයි.


36
මෙය ක්‍රියාත්මක වන්නේ ඔබ අල්ලා ගන්නා පරාමිතිය URL හි අවසාන එක නම්, එය ඔබ රඳා නොපවතිනු ඇත (ඔබ එක් පරාමිතියක් පමණක් අපේක්ෂා කළත්). උදා: http://myserver/action?myParam=2&anotherParam=3නැත යටත් වනු ඇත "2"නමුත් "2&anotherParam=3".
ග්ලැසියර

39
(location.search.split('myParam=')[1]||'').split('&')[0]- සමග භාවිතා කිරීමට බහු params හෝ possibliy අතුරුදහන් myParam .
ගොබර් ඉම්රේ

හෝlocation.search.split('myParam=').splice(1).join('').split('&')[0]
ජේ. ස්ටීව්

1
ඔබට වඩා නිරවද්යතාවයකින් ලබා ගැනීමට හා සමග prepending විසින් පරාමිතීන් ඕනෑම නියෝගයක් ඉඩ හැක [?|&]මෙන්[?|&]myParam=([^&]+)
1.21 gigawatts

1
ඔබට අගය විකේතනය කිරීමට අවශ්‍ය විය හැකියresult = decodeURIComponent(result);
ගිගාවොට් 1.21

130

බ්‍රව්සර් වෙළෙන්දෝ URL සහ URLSearchParams හරහා මෙය කිරීමට ස්වදේශීය ක්‍රමයක් ක්‍රියාත්මක කර ඇත.

let url = new URL('http://www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5');
let searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('c'));  // outputs "m2-m3-m4-m5"

දැනට ෆයර්ෆොක්ස්, ඔපෙරා, සෆාරි, ක්‍රෝම් සහ එජ් සඳහා සහය දක්වයි. බ්‍රව්සර් සහාය ලැයිස්තුවක් සඳහා මෙහි බලන්න .

https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams https://developer.mozilla.org/en-US/docs/Web/API/URL/URL

https://url.spec.whatwg.org/

ගූගල් හි ඉංජිනේරුවෙකු වන එරික් බිඩෙල්මන් සහාය නොදක්වන බ්‍රව්සර් සඳහා මෙම පොලිෆිල් භාවිතා කිරීම නිර්දේශ කරයි .


එම්ඩීඑන් සබැඳිය (ය) අනුව සෆාරි සහය URL ය, නමුත් URLSearchParams නොවේ.
මාර්ක් තොම්සන්

3
Ark මාකුවර් පොලිෆිල් ඒ ගැන බලා ගන්නේ නැද්ද? BTW, Safari යනු නූතන දිනවල IE6
Csaba Toth

මා වෙනුවෙන් new URLSearchParams("www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5").get('a')නැවත පැමිණෙන්නේ ඇයි null? (Chrome ස්ථායී මත). bහා cවැඩ කරන බවක් පෙනී යයි.
ripper234

යාවත්කාලීන කළ පිළිතුර. මගේ මුල් පිළිතුර URLSearchParams නිසියාකාරව භාවිතා නොකිරීම නිසා එය නිර්මාණය කර ඇත්තේ URL හි විමසුම් කොටස සමඟ වැඩ කිරීමට පමණි.
cgatian

2
url.searchParamsඒ වෙනුවට භාවිතා කරන්න new URLSearchParams(url.search).
කායෝ තාරිෆා

89

මම මෙය අවුරුදු ගණනාවකට පෙර සොයා ගත්තා, ඉතා පහසුයි:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,    
    function(m,key,value) {
      vars[key] = value;
    });
    return vars;
  }

ඉන්පසු එය මේ ආකාරයට අමතන්න:

var fType = getUrlVars()["type"];

7
+1 විශිෂ්ට විසඳුම - අලංකාර, කාර්යක්ෂම හා බුද්ධිමත් යනු භාවිතයේ කොන්දේසි ය. මගේ අරමුණු සඳහා පිළිගත් අනෙක් විසඳුමට වඩා හොඳයි
මූලද්‍රව්‍ය

short + simple + powerful = නියමයි
mzy

1
ඉතා හොඳයි, එය window.location.href වෙනුවට location.search භාවිතා කරමින්ද ක්‍රියා කරයි
Fabio C.

1
@pdxbmw එය නිෂ් less ල වන අතර එය ඉවත් කළ යුතුය. බැලූ බැල්මට කේතය දක්ෂ බවක් පෙනෙන්නට තිබුණත් එය හොඳින් සිතා බලා නැත. වැඩිදියුණු කිරීම්: decodeURIComponent()අගය මත භාවිතා කරන්න , මන්ද එය ඔබට සාමාන්‍යයෙන් වැඩ කිරීමට අවශ්‍ය නිසා ය; window.location.searchඒ වෙනුවට භාවිතා කරන්න window.location.href, මන්ද ඔබ උනන්දු වන්නේ පරාමිතීන් ගැන මිස සමස්ත url එක ගැන නොවේ.
ලීෆ්

2
E ලයිෆ් යෝජනාව විශිෂ්ටයි. මම 142 # හැඳුනුම්පතක් ලබා ගනිමින් සිටියේ URL අවසානයේ බොත්තම් ක්ලික් කිරීමකින් # ජනනය වූ බැවිනි. ශ්‍රිතය මේ ආකාරයෙන් අත්හැරීමvar vars = {}; window.location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars;
ඇන්ඩ්‍රෙස් රමෝස්

78

ඔබට විමසුම් දාමය ලබා ගත හැකිය location.search, පසුව ප්‍රශ්නාර්ථ ලකුණෙන් පසුව ඔබට සියල්ල බෙදිය හැකිය:

var params = {};

if (location.search) {
    var parts = location.search.substring(1).split('&');

    for (var i = 0; i < parts.length; i++) {
        var nv = parts[i].split('=');
        if (!nv[0]) continue;
        params[nv[0]] = nv[1] || true;
    }
}

// Now you can get the parameters you want like so:
var abc = params.abc;

3
පරාමිති නම් සහ අගයන් URL- විකේතනය කිරීම ගැන කුමක් කිව හැකිද?
Ates Goral

මෙම ප්‍රවේශය අරා හසුරුවන්නේ නැත. උදා: ?array[]=1&array[]=2නිපදවන {"array[]": "2"}අතර එය පැහැදිලිවම වැරදිය.
කෆෝසෝ

1
Af කෆෝසෝ මෙහි පැහැදිලි හෝ හරි වැරැද්දක් නොමැත. පළමුවෙන්ම, එකම නම් සහිත පුනරාවර්තන ක්ෂේත්‍රයන්ට නිශ්චිත සම්මත හැසිරීමක් නොමැති අතර එය හැසිරවිය යුතු ය. මීට අමතරව, []රටාවට අර්ථයක් ඇත්තේ සමහර අවස්ථාවල පමණි (උදා: PHP), නමුත් අනෙක් ඒවා නොවේ. එබැවින් "පැහැදිලිවම වැරදියි" - ඔබට හැසිරවීමට හෝ අවශ්‍ය නොවිය හැකි සම්මත නොවන නඩුවක් හැසිරවීමට ක්‍රියාත්මක නොවේ.
Blixt

39

මම වඩාත් සරල හා අලංකාර විසඳුමක් ලිව්වෙමි.

var arr = document.URL.match(/room=([0-9]+)/)
var room = arr[1];

පේළි දෙකක් දෙස බලන්න, එය ටින් එකේ කියන දේම කරයි - යමෙක් අනාරක්ෂිත බව සොයා බැලීමට උත්සාහ කරන්නේ නම් සහ මෙම විසඳුම් කිහිපයක් මෙන් නොව අමතර අක්ෂර හා විමසුම් රාශියක් එකතු කරන්නේ නම් එය බිඳී නොයනු ඇත. චියර්ස් පරිච්ඡේදය!
ඩේවිඩ් ජී

මෙය කාර්යය නිවැරදිව කරන අතර පේළි 2 කින් පමණි. නියම පිළිතුර!
ඇන්ඩ්‍රෙස් රමෝස්

ශුන්‍යය සඳහා වෙනත් චෙක්පතක් ඇතුළත් කිරීම පහසු යැයි මම සිතමි. එසේ නොවේ නම්, උදාහරණයක් මෙහි ඇත: stackoverflow.com/a/36076822/1945948 (මට සංස්කරණ උත්සාහයක් ප්‍රතික්ෂේප විය).
atw

තේරෙන්නේ නැහැ ... 'www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5' යන නිශ්චිත නූලකින් පරාමිති ලබා ගැනීම පිළිබඳ ප්‍රශ්නයට මෙය පිළිතුරු දෙන්නේ කෙසේද?
මයික් මීයන්

මෙම පිළිතුරට ආදරය කළා, + 1. , ඔබ විස්ථාපනය කල හැකි හුදෙක් යෝජනාව [0-9] සඳහා\d
gmanjon

36

URLSearchParams භාවිතා කරන සුපිරි සරල ක්‍රමයක් .

function getParam(param){
  return new URLSearchParams(window.location.search).get(param);
}

එය දැනට Chrome, Firefox, Safari, Edge සහ වෙනත් අය සඳහා සහය දක්වයි .


දෝෂය ලබා ගන්න: 'SCRIPT5009:' URLSearchParams 'අර්ථ දැක්වෙන්නේ නැත.
ඇන්ඩ්‍රියාස් ප්‍රෙස්ටමර්

Nd ඇන්ඩ්‍රියාස්ප්‍රෙස්ටමර් අද්දර කුමන අනුවාදයද?
spencer.sm


pre iiiml0sto1 “පෙර සැකසූ URL පරාමිතීන්” යනු කුමක්ද?
spencer.sm

31

මෙන්න පුනරාවර්තන විසඳුමක් වන අතර එය අවම විකෘතියක් ඇත (පරාමිති වස්තුව පමණක් විකෘති වී ඇත, එය ජේඑස් හි නොවැලැක්විය හැකි යැයි මම විශ්වාස කරමි).

එය නියමයි:

  • පුනරාවර්තන වේ
  • එකම නමක පරාමිතීන් හසුරුවයි
  • විකෘති පරාමිති නූල් සමඟ හොඳින් කටයුතු කරයි (නැතිවූ අගයන්, එසේ ය)
  • '=' අගයෙහි තිබේ නම් කැඩී නොයයි
  • URL විකේතනය සිදු කරයි
  • අවසාන වශයෙන්, එය නියමයි ... ආහ් !!!

කේතය:

var get_params = function(search_string) {

  var parse = function(params, pairs) {
    var pair = pairs[0];
    var parts = pair.split('=');
    var key = decodeURIComponent(parts[0]);
    var value = decodeURIComponent(parts.slice(1).join('='));

    // Handle multiple parameters of the same name
    if (typeof params[key] === "undefined") {
      params[key] = value;
    } else {
      params[key] = [].concat(params[key], value);
    }

    return pairs.length == 1 ? params : parse(params, pairs.slice(1))
  }

  // Get rid of leading ?
  return search_string.length == 0 ? {} : parse({}, search_string.substr(1).split('&'));
}

var params = get_params(location.search);

// Finally, to get the param you want
params['c'];

31
ඔයා ... ඔයා කිව්වේ දෙවරක් පුනරාවර්තනය කියලා.
විසංවාදී කෝපය

එය ඊළඟ url හි පළමු පරාමිතිය සොයාගත නොහැක: www.mysite.com?first=1&second=2
Mario Radomanana

හායි මාරියෝ, මෙන්න එම URL සමඟ වැඩ කරන බව පෙන්වන JSFiddle : jsfiddle.net/q6xfJ - ඔබ දෝෂයක් සොයාගෙන ඇත්නම්, මෙය බ්‍රව්සරයට විශේෂිතද ? පරීක්ෂා කිරීමේදී, මා විසින් සපයන ලද පිළිතුර URL හි '? First = 1 & second = 2' කොටස වන location.search භාවිතා කරන බව කරුණාවෙන් සලකන්න. චියර්ස් :)
ජේ

45
යමක් පුනරාවර්තන නිසා පමණක් හොඳ වන්නේ මන්දැයි මම නොදනිමි.
ඇඩම් අරල්ඩ්

7
අර්ම්, මම හිතන්නේ ඔබට ආදම්ගේ පුනරාවර්තන විහිළුව මඟ හැරුණි. Edi9999 දෙවන "පුනරාවර්තන" ඉවත් කළ නිසා දැන් සෑම කෙනෙකුටම එය මග හැරෙනු ඇත.
ජේ

28

මම මෙය කරන ශ්‍රිතයක් කළෙමි:

var getUrlParams = function (url) {
  var params = {};
  (url + '?').split('?')[1].split('&').forEach(function (pair) {
    pair = (pair + '=').split('=').map(decodeURIComponent);
    if (pair[0].length) {
      params[pair[0]] = pair[1];
    }
  });
  return params;
};

යාවත්කාලීන කිරීම 5/26/2017, මෙන්න ES7 ක්‍රියාත්මක කිරීමකි (බාබල් පෙර සැකසුම් අදියර 0, 1, 2, හෝ 3 සමඟ ධාවනය වේ):

const getUrlParams = url => `${url}?`.split('?')[1]
  .split('&').reduce((params, pair) =>
    ((key, val) => key ? {...params, [key]: val} : params)
    (...`${pair}=`.split('=').map(decodeURIComponent)), {});

සමහර පරීක්ෂණ:

console.log(getUrlParams('https://google.com/foo?a=1&b=2&c')); // Will log {a: '1', b: '2', c: ''}
console.log(getUrlParams('/foo?a=1&b=2&c')); // Will log {a: '1', b: '2', c: ''}
console.log(getUrlParams('?a=1&b=2&c')); // Will log {a: '1', b: '2', c: ''}
console.log(getUrlParams('https://google.com/')); // Will log {}
console.log(getUrlParams('a=1&b=2&c')); // Will log {}

3/26/2018 යාවත්කාලීන කරන්න, මෙන්න යතුරු ලියනය ක්‍රියාත්මක කිරීමකි:

const getUrlParams = (search: string) => `${search}?`
  .split('?')[1]
  .split('&')
  .reduce(
    (params: object, pair: string) => {
      const [key, value] = `${pair}=`
        .split('=')
        .map(decodeURIComponent)

      return key.length > 0 ? { ...params, [key]: value } : params
    },
    {}
  )

යාවත්කාලීන කිරීම 2/13/2019, මෙන්න ටයිප්ස්ක්‍රිප්ට් 3 සමඟ ක්‍රියා කරන යාවත්කාලීන කළ ටයිප්ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමකි.

interface IParams { [key: string]: string }

const paramReducer = (params: IParams, pair: string): IParams => {
  const [key, value] = `${pair}=`.split('=').map(decodeURIComponent)

  return key.length > 0 ? { ...params, [key]: value } : params
}

const getUrlParams = (search: string): IParams =>
  `${search}?`.split('?')[1].split('&').reduce<IParams>(paramReducer, {})

විමසුම් පරාමිතීන් නොමැති URL එකක මෙය නැවත පැමිණේObject {"": ""}
ඉල්යා සෙමෙනොව්

2
මට පෙනෙන තරම් පිරිසිදුයි වගේ. ඉතිරි පිළිතුරු ප්‍රමාණවත් පැහැදිලි කිරීමකින් තොරව “මැජික්” ය.
ලෙවි රොබට්ස්

මෙය නියම පිළිතුරකි!
ස්පෙන්සර් බිගුම්

ස්තූතියි p ස්පෙන්සර්බිගම්!
නේට් ෆෙරේරෝ

24

මේක බලන්න

function getURLParameters(paramName)
{
    var sURL = window.document.URL.toString();
    if (sURL.indexOf("?") > 0)
    {
        var arrParams = sURL.split("?");
        var arrURLParams = arrParams[1].split("&");
        var arrParamNames = new Array(arrURLParams.length);
        var arrParamValues = new Array(arrURLParams.length);

        var i = 0;
        for (i = 0; i<arrURLParams.length; i++)
        {
            var sParam =  arrURLParams[i].split("=");
            arrParamNames[i] = sParam[0];
            if (sParam[1] != "")
                arrParamValues[i] = unescape(sParam[1]);
            else
                arrParamValues[i] = "No Value";
        }

        for (i=0; i<arrURLParams.length; i++)
        {
            if (arrParamNames[i] == paramName)
            {
                //alert("Parameter:" + arrParamValues[i]);
                return arrParamValues[i];
            }
        }
        return "No Parameters Found";
    }
}

1
ස්තූතියි. මම jscript වලට අලුත් වන අතර මෙය බෙහෙවින් ප්‍රයෝජනවත් වනු ඇත.
බ්‍රයන් බී.

20

ECMAScript 6 විසඳුම:

var params = window.location.search
  .substring(1)
  .split("&")
  .map(v => v.split("="))
  .reduce((map, [key, value]) => map.set(key, decodeURIComponent(value)), new Map())

හොඳයි. FYI, එය සිතියමක් බැවින් භාවිතය params.get ("key");
evanmcd

මම එයට කැමතියි නමුත් බොහෝ විට එයට පළමු පරාමිතිය නොලැබෙනු ඇත. මම කාර්යය නිර්මාණය ඔබේ ආදර්ශය මත පදනම් function urlParams(url) { const [, searchParams = ''] = url.split('?') return searchParams.split('&') .map(v => v.split('=')) .reduce((map, [key = '', value]) => key.length ? map.set(key, decodeURIComponent(value)) : map, new Map()) }
mah.cr


11

මම පාවිච්චි කරනවා

function getVal(str) {
    var v = window.location.search.match(new RegExp('(?:[\?\&]'+str+'=)([^&]+)'));
    return v ? v[1] : null;
}

කරුණාකර යම් පැහැදිලි කිරීමක් එක් කරන්න. ඔබගේ පිළිතුර දැනට "අඩු ගුණාත්මක" ලෙස සලකුණු කර ඇති අතර අවසානයේ එය නොමැතිව ඉවත් කළ හැකිය.
ජොහැන්නස් ජැන්ඩර්

යූආර්එල් එක අවසානයේ '#id' වැනි නූලක් තිබේ නම්, සහ 'somevalue # id' වැනි අවසාන පරාමිති අගය නැවත ලබා දෙන බව මට පෙනී ගියේය
අයනෝ

Ay අයානෝ window.location.searchවැනි හැෂ් ඇතුළත් නොවේ #id.
ෆැන්සිඕං

@Fancyoung ඔව්, ඔබ හරි, මම භාවිතය අතින් වරදක් සිදු location.hrefවෙනුවට ප්රතිඵලයක් ගැලපෙන location.search.ඔබට.
අයනෝ

10

කෙටිම ක්‍රමය:

new URL(location.href).searchParams.get("my_key");

2
මම භාවිතා අනුග්රහය ඇත new URL(location.href).searchParams.get("my_key")කට URLSearchParamsඕනෑම URL පළමු විමසුම පරාමිතිය දැන ගැනීම විට අග අසාර්ථක වනු ඇත සිට.
ට්‍රැවිස් ක්ලාක්

1
ප්‍රභේද දෙකම පරීක්ෂා කර ඇත. මම ඔබ සමග එකඟයි. පිළිතුර සංස්කරණය කරන ලදි.
කලාප

ව්‍යාපෘති වලදී මා භාවිතා කරන ක්‍රමය මෙයයි
kurdtpage

9

මෙන්න මගේ විසඳුම. මෙම ප්‍රශ්නයට පිළිතුරු දෙන අතරතුර ඇන්ඩි ඊ විසින් උපදෙස් දුන් පරිදි, තනි අගයක් ලබා ගැනීම සඳහා විවිධ රීජෙක්ස් නූල්, ධාවන ලූප යනාදිය නැවත නැවත ගොඩනඟන්නේ නම් එය ඔබේ ස්ක්‍රිප්ටයේ ක්‍රියාකාරිත්වයට හොඳ නැත. ඉතින්, මම සියලු GET පරාමිතීන් තනි වස්තුවක නැවත ලබා දෙන සරල පිටපතක් ඉදිරිපත් කර ඇත්තෙමි. ඔබ එය එක් වරක් පමණක් ඇමතිය යුතු අතර, ප්‍රති result ලය විචල්‍යයකට පැවරිය යුතු අතර අනාගතයේ ඕනෑම අවස්ථාවක සුදුසු යතුර භාවිතා කර එම විචල්‍යයෙන් ඔබට අවශ්‍ය ඕනෑම අගයක් ලබා ගත යුතුය. එය URI විකේතනය (එනම්% 20 වැනි දේවල්) ගැන සැලකිලිමත් වන අතර + වෙනුවට ඉඩක් ආදේශ කරයි:

 function getUrlQueryParams(url) {
  var queryString = url.split("?")[1];
  var keyValuePairs = queryString.split("&");
  var keyValue = [];
  var queryParams = {};
  keyValuePairs.forEach(function(pair) {
    keyValue = pair.split("=");
    queryParams[keyValue[0]] = decodeURIComponent(keyValue[1]).replace(/\+/g, " ");
});
  return queryParams;
}

ඉතින්, ඔබට බැලීමට පිටපතෙහි පරීක්ෂණ කිහිපයක් මෙන්න:

// Query parameters with strings only, no special characters.
var currentParams = getUrlQueryParams("example.com/foo?number=zero");
alert(currentParams["number"]); // Gives "zero".

// For the URL you stated above...
var someParams = getUrlQueryParams("www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5 ");
alert(someParams["c"]); // Gives "m2-m3-m4-m5".

// For a query params with URI encoding...
var someParams = getUrlQueryParams("www.example.com/t.html?phrase=a%20long%20shot&location=Silicon+Valley%2C+USA");
alert(someParams["phrase"]); // Gives "a long shot".
alert(someParams["location"]); // Gives "Silicon Valley, USA".

.replace ("+", "") මඟින් ඔබ භාවිතා කළ යුතු පළමු සිදුවීම පමණක් ආදේශ කරනු ඇත .replace (/ \ + / g, "");
ටෝනි

8

නැතහොත් ඔබට URI විග්‍රහ කිරීමේ රෝදය නවීකරණය කිරීමට අවශ්‍ය නැතිනම් URI.js භාවිතා කරන්න

Foo නම් පරාමිතියක වටිනාකම ලබා ගැනීම සඳහා:

new URI((''+document.location)).search(true).foo

එය කරන්නේ එයයි

  1. Document.location එක නූලකට පරිවර්තනය කරන්න (එය වස්තුවකි)
  2. URI.js හි URI පන්තියේ නිර්මාපකයාට එම නූල පෝෂණය කරන්න
  3. යූආර්එල් හි සෙවුම් (විමසුම්) කොටස ලබා ගැනීම සඳහා සෙවුම් () ශ්‍රිතයට ආයාචනා කරන්න (
    සත්‍යය පසු කිරීමෙන් එය වස්තුවක් ප්‍රතිදානය කිරීමට කියයි)
  4. වටිනාකම ලබා ගැනීම සඳහා ලැබෙන වස්තුව මත foo දේපල වෙත පිවිසෙන්න

මෙන්න මේ සඳහා ප්‍රහේලිකාවක් .... http://jsfiddle.net/m6tett01/12/


8

සඳහා තනි කම අගය මෙම index.html වගේ දෙයක්? Msg = 1 පහත දැක්වෙන කේතය භාවිතා,

$(window).load(function(){
    queryString();
});

function queryString()
{
    var queryString = window.location.search.substring(1);
    var varArray = queryString.split("="); //eg. index.html?msg=1

    var param1 = varArray[0];
    var param2 = varArray[1];

}

සඳහා සියලුම කම පහත දැක්වෙන කේතය අගය භාවිතය,

$(window).load(function(){
    queryString();
});

function queryString()
{
    var queryString = window.location.search;
    var varArray = queryString.split("&");
    for (var i=0;i<varArray.length;i++) {
      var param = varArray[i].split("=");
        //parameter-value pair
    }
} 

1
මම මේ විසඳුමට කැමතියි!
අක්මුර්

8

මෙන්න මම එක් උදාහරණයක් පළ කරමි. නමුත් එය jQuery හි ඇත. එය අන් අයට උපකාර කරනු ඇතැයි සිතමු:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.url.js"></script>

<!-- URL:  www.example.com/correct/?message=done&year=1990-->

<script type="text/javascript">
$(function(){
    $.url.attr('protocol')  // --> Protocol: "http"
    $.url.attr('path')          // --> host: "www.example.com"
    $.url.attr('query')         // --> path: "/correct/"
    $.url.attr('message')   // --> query: "done"
    $.url.attr('year')      // --> query: "1990"
});
</script>

1
ඔබගේ අනෙක් ලිපියෙන් පිටපත් කරන ලදි: "url ප්ලගිනය අවශ්‍යයි: plugins.jquery.com/url"
zeta

7

මෙම ප්‍රශ්නයට පිළිතුරු ඕනෑවටත් වඩා ඇත, එබැවින් මම තවත් එකක් එකතු කරමි.

/**
 * parses and returns URI query parameters 
 * 
 * @param {string} param parm
 * @param {bool?} asArray if true, returns an array instead of a scalar 
 * @returns {Object|Array} 
 */
function getURIParameter(param, asArray) {
    return document.location.search.substring(1).split('&').reduce(function(p,c) {
        var parts = c.split('=', 2).map(function(param) { return decodeURIComponent(param); });
        if(parts.length == 0 || parts[0] != param) return (p instanceof Array) && !asArray ? null : p;
        return asArray ? p.concat(parts.concat(true)[1]) : parts.concat(true)[1];
    }, []);
}

භාවිතය:

getURIParameter("id")  // returns the last id or null if not present
getURIParameter("id", true) // returns an array of all ids

මෙය හිස් පරාමිතීන් සමඟ (එම යතුරු නොමැතිව පවතී "=value"), පරිමාණ සහ අරාව මත පදනම් වූ අගය ලබා ගැනීමේ API දෙකම නිරාවරණය කිරීම මෙන්ම නිසි URI සංරචක විකේතනය සමඟ කටයුතු කරයි.


7

ක්රමය භාවිතා කිරීමට පහසුම replace()ක්රමය:

සිට urlStrසොයමු:

paramVal = urlStr.replace(/.*param_name=([^&]*).*|(.*)/, '$1');

හෝ වත්මන් URL වෙතින් :

paramVal = document.URL.replace(/.*param_name=([^&]*).*|(.*)/, '$1');

පැහැදිලි කිරීම:

  • document.URL - අතුරුමුහුණත ලේඛනයේ පිහිටීම (පිටු url) නූලක් ලෙස ලබා දෙයි.
  • replace()- ක්රමය කිහිපයක් හෝ සියල්ලම තරග සමග නව අගයක් ප්රතිදානය රටාව මගින් විස්ථාපනය වෙනුවට .
  • /.*param_name=([^&]*).*/- කප්පාදුව අතර කොටු කර ඇති නිත්‍ය ප්‍රකාශන රටාව:
    • .* - ඕනෑම අක්ෂර ශුන්‍ය හෝ වැඩි ගණනක්,
    • param_name= - සේවය කරන පරම් නම,
    • () - නිත්‍ය ප්‍රකාශනයේ සමූහය,
    • [^&]*- හැර වෙනත් ඕනෑම අක්ෂර එකක් හෝ කිහිපයක් &,
    • | - විකල්ප,
    • $1 - නිත්‍ය ප්‍රකාශනයේ පළමු කණ්ඩායම වෙත යොමු කිරීම.

var urlStr = 'www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5';
var c = urlStr.replace(/.*c=([^&]*).*|(.*)/, '$1');
var notExisted = urlStr.replace(/.*not_existed=([^&]*).*|(.*)/, '$1');
console.log(`c === '${c}'`);
console.log(`notExisted === '${notExisted}'`);


1
හොඳ විසඳුමක්, නමුත් පරාමිතිය සොයාගත නොහැකි නම්, මුළු නූලම ආපසු ලබා දෙනු ලැබේ. මෙම නඩුවේ "නිර්වචනය නොකළ" මම බලාපොරොත්තු වෙමි.
පෙන්සන්

1
හායි එපෙන්සන්, ඔබගේ විශිෂ්ට අදහස් දැක්වීමට ස්තූතියි. URL හි පරාමිතිය නොපෙන්වන විට තත්වය හැසිරවීම මම සාමාන්‍ය ප්‍රකාශනයට එක් කරමි. මෙම අවස්ථාවේ දී අපට ලැබෙන්නේ emty string (සම්පූර්ණ නූල් නොවේ).
simhumileco

6

තවත් යෝජනාවක්.

දැනටමත් හොඳ පිළිතුරු කිහිපයක් ඇත, නමුත් ඒවා අනවශ්‍ය ලෙස සංකීර්ණ හා තේරුම් ගැනීමට අපහසු බව මට පෙනී ගියේය. මෙය කෙටි, සරල වන අතර URL හි ටෝකන නාමයන්ට අනුරූප වන ප්‍රධාන නම් සහිත සරල සහායක පෙළක් ලබා දෙයි.

ඉගෙනීමට කැමති අය සඳහා මම පහත අදහස් දැක්වීම් සහිත අනුවාදයක් එක් කළෙමි.

මෙය සෑම ලූපයක් වෙනුවට මම නිර්දේශ කරන එහි ලූපය සඳහා jQuery ($ .each) මත රඳා පවතින බව සලකන්න. පැරණි බ්‍රව්සර්වල නව කාර්යයන් සඳහා සහය නොදක්වන ඕනෑම දෙයකට සහය දැක්වීම සඳහා තනි විසඳුම් සවි කිරීම වෙනුවට පුවරුව හරහා jQuery භාවිතා කරමින් හරස් බ්‍රව්සර් අනුකූලතාව සහතික කිරීම සරල බව මට පෙනේ.

සංස්කරණය කරන්න: මම මෙය ලිවීමෙන් පසු එරික් එලියට්ගේ පිළිතුර සෑම එකක් සඳහාම භාවිතා කළත් එය බොහෝ දුරට සමාන ය, මම සාමාන්‍යයෙන් විරුද්ධ වන අතර (ඉහත සඳහන් හේතු නිසා).

function getTokens(){
    var tokens = [];
    var query = location.search;
    query = query.slice(1);
    query = query.split('&');
    $.each(query, function(i,value){    
        var token = value.split('=');   
        var key = decodeURIComponent(token[0]);     
        var data = decodeURIComponent(token[1]);
        tokens[key] = data;
    });
    return tokens;
}

අදහස් දැක්වූ අනුවාදය:

function getTokens(){
    var tokens = [];            // new array to hold result
    var query = location.search; // everything from the '?' onward 
    query = query.slice(1);     // remove the first character, which will be the '?' 
    query = query.split('&');   // split via each '&', leaving us an array of something=something strings

    // iterate through each something=something string
    $.each(query, function(i,value){    

        // split the something=something string via '=', creating an array containing the token name and data
        var token = value.split('=');   

        // assign the first array element (the token name) to the 'key' variable
        var key = decodeURIComponent(token[0]);     

        // assign the second array element (the token data) to the 'data' variable
        var data = decodeURIComponent(token[1]);

        tokens[key] = data;     // add an associative key/data pair to our result array, with key names being the URI token names
    });

    return tokens;  // return the array
}

පහත උදාහරණ සඳහා අපි මෙම ලිපිනය උපකල්පනය කරමු:

http://www.example.com/page.htm?id=4&name=murray

ඔබට ඔබේම විචල්‍යයට URL ටෝකන ලබා දිය හැකිය:

var tokens = getTokens();

ඉන්පසු එක් එක් URL ටෝකනය මේ ආකාරයෙන් යොමු කරන්න:

document.write( tokens['id'] );

මෙය "4" මුද්‍රණය කරයි.

ඔබට සෘජුවම ශ්‍රිතයෙන් aa ටෝකන් නාමයක් යොමු කළ හැකිය:

document.write( getTokens()['name'] );

... එය "මරේ" මුද්‍රණය කරයි.


6
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

// Usage for URL: http://my.site.com/location?locationId=53cc272c0364aefcb78756cd&shared=false
var id = getUrlVars()["locationId"];

මෙතැනින් ලබා ගත්තා: http://jquery-howto.blogspot.ru/2009/09/get-url-parameters-values-with-jquery.html


6

සරල ක්‍රමය

function getParams(url){
        var regex = /[?&]([^=#]+)=([^&#]*)/g,
            params = {},
            match;
        while(match = regex.exec(url)) {
            params[match[1]] = match[2];
        }
        return params;
    }

getParams (url) ලෙස අමතන්න


6

අලංකාර, ක්‍රියාකාරී ශෛලීය විසඳුම

යූආර්එල් පරාමි නම් යතුරු ලෙස වස්තුවක් නිර්මාණය කරමු, එවිට අපට පහසුවෙන් පරාමිතිය එහි නමින් උකහා ගත හැකිය:

// URL: https://example.com/?test=true&orderId=9381  

// Build an object containing key-value pairs
export const queryStringParams = window.location.search
  .split('?')[1]
  .split('&')
  .map(keyValue => keyValue.split('='))
  .reduce<QueryStringParams>((params, [key, value]) => {
    params[key] = value;
    return params;
  }, {});

type QueryStringParams = {
  [key: string]: string;
};


// Return URL parameter called "orderId"
return queryStringParams.orderId;

මේකට ආදරය කරන්න, නමුත් අඩු කිරීමේ ශ්‍රිතයේ සමුච්චය නැවත ලබා දීමට වග බලා නොගෙන මා වෙනුවෙන් වැඩ කළේ නැත
එලා

@ එලා එය යතුරු ලියනයකි, එය නොමැතිව වැඩ කළ හැකි ක්‍රමයක් නොමැතreturn

දැන් වඩා හොඳ පෙනුමක්, ඔබ එය පළමු පිටුවට ඇතුළත් කරනු ඇතැයි අපි ප්‍රාර්ථනා කරමු!
එලා

5

මට URL GET විචල්‍යයක් කියවා url පරාමිතිය මත පදනම්ව ක්‍රියාවක් සම්පූර්ණ කිරීමේ අවශ්‍යතාවය තිබුණි. මම විසඳුමක් සඳහා ඉහළ සහ පහත් සෙවූ අතර මෙම කුඩා කේත කැබැල්ල හමු විය. එය මූලික වශයෙන් වර්තමාන පිටු url කියවන අතර, URL හි යම් නිත්‍ය ප්‍රකාශනයක් සිදු කර පසුව අපට පහසුවෙන් ප්‍රවේශ විය හැකි සහායක අරාව තුළ url පරාමිතීන් සුරකිනු ඇත.

උදාහරණයක් ලෙස, පහත දැක්වෙන url එක ජාවාස්ක්‍රිප්ට් සමඟ පතුලේ තිබේ නම්.

http://TestServer/Pages/NewsArchive.aspx?year=2013&Month=July

පරාමිති හැඳුනුම්පත සහ පිටුව ලබා ගැනීම සඳහා අප කළ යුත්තේ මෙය අමතන්න:

කේතය වනුයේ:

<script type="text/javascript">
var first = getUrlVars()["year"];
var second = getUrlVars()["Month"];

alert(first);
alert(second);
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
</script>

5
// http:localhost:8080/path?param_1=a&param_2=b
var getParamsMap = function () {
    var params = window.location.search.split("&");
    var paramsMap = {};
    params.forEach(function (p) {
        var v = p.split("=");
        paramsMap[v[0]]=decodeURIComponent(v[1]);
    });
    return paramsMap;
};

// -----------------------

console.log(getParamsMap()["param_1"]);  // should log "a"     

මෙය පළමු පරාමිතිය '?'
පිනී චේනි

5

එල්ඩන් මැක්ගිනස් විසින් රචිත මෙම සාරාංශය, මම මෙතෙක් දැක ඇති ජාවාස්ක්‍රිප්ට් විමසුම් නූල් විග්‍රහකය වඩාත් සම්පූර්ණ ලෙස ක්‍රියාත්මක කිරීමකි.

අවාසනාවට, එය jQuery ප්ලගිනයක් ලෙස ලියා ඇත.

මම එය වැනිලා ජේඑස් වෙත නැවත ලියා වැඩි දියුණු කිරීම් කිහිපයක් කළෙමි:

function parseQuery(str) {
  var qso = {};
  var qs = (str || document.location.search);
  // Check for an empty querystring
  if (qs == "") {
    return qso;
  }
  // Normalize the querystring
  qs = qs.replace(/(^\?)/, '').replace(/;/g, '&');
  while (qs.indexOf("&&") != -1) {
    qs = qs.replace(/&&/g, '&');
  }
  qs = qs.replace(/([\&]+$)/, '');
  // Break the querystring into parts
  qs = qs.split("&");
  // Build the querystring object
  for (var i = 0; i < qs.length; i++) {
    var qi = qs[i].split("=");
    qi = qi.map(function(n) {
      return decodeURIComponent(n)
    });
    if (typeof qi[1] === "undefined") {
      qi[1] = null;
    }
    if (typeof qso[qi[0]] !== "undefined") {

      // If a key already exists then make this an object
      if (typeof (qso[qi[0]]) == "string") {
        var temp = qso[qi[0]];
        if (qi[1] == "") {
          qi[1] = null;
        }
        qso[qi[0]] = [];
        qso[qi[0]].push(temp);
        qso[qi[0]].push(qi[1]);

      } else if (typeof (qso[qi[0]]) == "object") {
        if (qi[1] == "") {
          qi[1] = null;
        }
        qso[qi[0]].push(qi[1]);
      }
    } else {
      // If no key exists just set it as a string
      if (qi[1] == "") {
        qi[1] = null;
      }
      qso[qi[0]] = qi[1];
    }
  }
  return qso;
}

// DEMO
console.log(parseQuery("?foo=bar&foo=boo&roo=bar;bee=bop;=ghost;=ghost2;&;checkbox%5B%5D=b1;checkbox%5B%5D=b2;dd=;http=http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab&http=http%3A%2F%2Fw3schools2.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab"));

මෙම ෆෙඩෙල් ද බලන්න .


ජාවාස්ක්‍රිප්ට් ගැන මට නොතේරෙන දෙය නම්, ඔවුන් යූආර්එල් විග්‍රහ කිරීමේ කාර්යයන් භාෂාවකට හෝ අවම වශයෙන් ප්‍රමිති පුස්තකාලයක තබා නොගන්නේ මන්ද? පහත් මට්ටමේ දේවල් ilke මෙය නැවත නැවත සොයා නොගත යුතු අතර සංවර්ධකයින්ට ඔවුන් විසින් අවුස්සන ඕනෑම එන්ට්‍රොපිකල් විචල්‍ය විසඳුම් භාවිතා කිරීමට ඉඩ නොදිය යුතුය. මෙය is න නම්, මේ වගේ දෙයක් සම්මත පුස්තකාලයට ඇතුළත් කළ යුතුය. මෙය භාෂාවට මා හරවන ජාවාස්ක්‍රිප්ට් හි ඇති දේට උදාහරණයකි.
ahnbizcad

4

මෙන්න මම කරන දේ:

var uriParams = getSearchParameters();
alert(uriParams.c);


// background functions:

// Get object/associative array of URL parameters
function getSearchParameters () {
  var prmstr = window.location.search.substr(1);
  return prmstr !== null && prmstr !== "" ? transformToAssocArray(prmstr) : {};
}

// convert parameters from url-style string to associative array
function transformToAssocArray (prmstr) {
  var params = {},
      prmarr = prmstr.split("&");

  for (var i = 0; i < prmarr.length; i++) {
    var tmparr = prmarr[i].split("=");
    params[tmparr[0]] = tmparr[1];
  }
  return params;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.