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

  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • Sam Kear

    Sam Kear

    14 Temmuz 2007
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010