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

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • RawBrahs

    RawBrahs

    28 Aralık 2010
  • SegaAmerica

    SegaAmerica

    5 Mart 2008