SORU
28 Ocak 2009, ÇARŞAMBA


JavaScript ile URL parametre ekleme

AJAX çağrıları kullanan bir web uygulamasında, bir istek gönderin ama örneğin URL sonuna bir parametre eklemek istiyorum

Orijinal URL:

http://server/myapp.php?id=10

URL sonuç:

http://server/myapp.php?id=10&etkin=true

Hangi JavaScript işlevi için zaten varsa, URL her parametre bakarak ayrıştırır, yeni bir parametre veya güncellemeleri değeri ekler.

CEVAP
28 Ocak 2009, ÇARŞAMBA


Uyum için ihtiyacınız olan temel bir uygulama, bu gibi bir şey olacaktır:

function insertParam(key, value)
{
    key = encodeURI(key); value = encodeURI(value);

    var kvp = document.location.search.substr(1).split('&');

    var i=kvp.length; var x; while(i--) 
    {
        x = kvp[i].split('=');

        if (x[0]==key)
        {
            x[1] = value;
            kvp[i] = x.join('=');
            break;
        }
    }

    if(i<0) {kvp[kvp.length] = [key,value].join('=');}

    //this will reload the page, it's likely better to store this until finished
    document.location.search = kvp.join('&'); 
}

Bu düzenli ifade veya arama tabanlı bir çözüm olarak yaklaşık iki kat daha hızlıdır, ama bu tamamen sorgu dizesi uzunluğu ve herhangi bir maç dizini bağlıdır


karşı karşılaştırılan yavaş normal ifade yöntemi tamamlanmış sake (150% daha yavaş yaklaşık)

function insertParam2(key,value)
{
    key = encodeURIComponent(key); value = encodeURIComponent(value);

    var s = document.location.search;
    var kvp = key "=" value;

    var r = new RegExp("(&|\\?)" key "=[^\&]*");

    s = s.replace(r,"$1" kvp);

    if(!RegExp.$1) {s  = (s.length>0 ? '&' : '?')   kvp;};

    //again, do what you will here
    document.location.search = s;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boogie2988

    boogie2988

    6 NİSAN 2006
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010