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


  • Web Slice készítése Alternative Display Source fejlesztési minta használatával (19:25)

    Fekete Krisztián A Web Slice-al foglalkozó sorozatunk előző két részében megismert fejlesztési mintákkal létrehozott Web Slice-ok testreszabhatóságának sajnos vannak korlátjai. Ezekben a web szeletekben nem használhatunk scripteket (pl.: JavaScriptet), illetve ActiveX kontrolokat sem. Nem esett szó továbbá eddig a Web Slice-ok dizájnolhatóságáról sem. A standard valamint az Alternative Update Source módszerekkel készített web szeletek esetén ez utóbbi téren is kompromisszumok kötésére kényszerülünk. Az Alternative Display Source minta azonban az összes imént említett problémára kínál valamilyen alternatív megoldást. Tovább »
  • Beágyazott operációs rendszerek, 2. nap (Windows PE)

    Kővári Bence A beágyazott Windows egyik fontos spórolási trükkje, hogy pontosan azokat a drivereket tartalmazza csupán, amelyek az adott hardverkonfiguráció futásához szükségesek. Az aktuális számítógépünk konfigurációját pedig viszonylag egyszerűen feltérképezhetjük, ha futtatjuk a tap.exe nevű csodaalkalmazást. Van azonban egy bökkenő: a tap.exe-t csak Windows alatt lehet futtatni, és ezzel már meg is érkeztünk a 22-es csapdájába. Nézzük mit tudunk ezzel kezdeni. 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