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

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • Pocketnow

    Pocketnow

    14 EKİM 2007