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

  • BioHunta

    BioHunta

    28 Mayıs 2006
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • Viktorija A.

    Viktorija A.

    28 Mart 2009