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: ,


  • A C# 2008 és a .NET 3.5

    Dávid Zoltán Gincsai Gábor barátommal lektoráltuk a címben szereplő könyv magyar kiadásának első kötetét. A könyv a Szak Kiadó munkáját dícséri. Magyarországon nagyon kevés – gyakorlatilag nulla – naprakész, mély, mégis érthető külföldi szakkönyv jelenik meg még azelőtt, hogy elavulna. Ez egy nagy kivétel. A szerző Andrew Troelsen tokkal-vonóval bemutatja, amit a C#-ról és a .NET-ről jelenleg tudni érdemes. A benne foglaltak elolvasását nyugodt szívvel ajánlom mindenkinek. Tovább »
  • INSERT TABLE generálása

    Dávid Zoltán Gyakran kell valami gyors és akár ronda megoldás olyan egyszerű problémákra, mint minden tárolteljárásra valamilyen jog megadása, vagy hogy SQL INSERT TABLE szkriptet generáljunk minden sorra, ami jelenleg benne van egy megadott táblában. Hogy mikor jó ez? Például amikor fejlesztői környezetből kell átültetni egy tábla teljes tartalmát az élesbe (tesztkörnyezetbe), vagy fordítva. Persze van erre mindenféle adattranszformáló eszköz is, a 10 soros saját szkriptek viszont vagányak és kis problémákra piszok gyorsak. A mai ronda és gyors megoldásunk egy ilyen INSERT TABLE utasításhalmazt generál. SQL szkriptként kell futtatni és SQL szkriptet ad vissza. 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