Query string kiolvasása JavaScriptből

Gyakran előfordul, hogy query stringben kell paramétereket cserélni ASP.NET és JavaScript között, ami egyrészt azért problémás, mert JavaScriptben nincs Request.QueryString gyűjtemény :) másrészt mert az értékek az URL-ben kódolva is lehetnek.

JavaScriptben az alábbi segédfüggvénnyel kényelmesen ki lehet olvasni a megadott nevű URL paramétert. Ha nincs ilyen nevű kulcs az URL-ben, akkor a második paraméterként átadott default értéket adja vissza:

  function getQueryString(key, default_) 
  {   
if (default_==null) default_="";
   key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
   var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
   var qs = regex.exec(window.location.href);
   if(qs == null) 
    return default_;
   else
     return qs[1]; }

Bevallom, ezt nem én találtam ki (talán ezért működik jól), de sajnos a forrást már nem tudom megnevezni, régen akadtam rá a neten.

Azt az esetet azonban nem kezeli jól, amikor szerver oldalon Server.UrlEncode hívással kódolva kerül átadásra a paraméter. A tapasztalatok azt mutatják, hogy ilyenkor JavaScriptben egy decodeURIComponent hívás után már jó az érték. Valahogy így:

  var keyword = decodeURIComponent( getQueryString( 'k' ) );

Ti mit használtok?



Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2010.04.18. 0:52:12 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • CSS és Javascript minimalizálás MSBuildből

    Balássy György (MS RD, ASP.NET MVP, MCTS) Az ASP.NET Web Site típusú projekt egyik tulajdonsága, hogy nem tartozik hozzá project fájl. Ez ugyan többnyire előny, mert kényelmes, nekem most éppen hátrány, mert MSBuilddel akarom automatizálni nem csak a fordítási folyamatot, hanem a web.config production beállításokkal történő frissítését, a felesleges könyvtárak törlését, továbbá a CSS és Javascript fájlok minimalizálását is. Tovább »
  • Beágyazott operációs rendszerek, 3. nap (Bootolás pendriveról)

    Kővári Bence Kedves olvasó, a mai napon igazán kegyes leszek hozzád. Ne is fáradj ennek a bejegyzésnek az elolvasásával, csak jegyezd meg jól: a Windows XP-t nem arra találták ki, hogy pendriveról bebootolják. Komolyan… Ha ilyesmit szeretnél csinálni, használj Vistát, vagy valamilyen Linux disztribúciót, de semmiképpen, ismétlem, semmiképpen ne pocsékold az idődet Windows XP-re. Ha mégis megpróbálnád, akkor legalább előtte okulj egy kicsit a lenti történetből… Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások