online: 12; azi: 784; total: 51239 Webdesign - Coduri-si-functii-in-js - 04

Preluare date, valori din adresa URL cu JavaScript

In aceasta pagina e prezentata o functie ce poate fi utilizata pentru a prelua datele dintr-o adresa URL, cele adaugate dupa "?".
Functia prezentata mai jos primeste ca argument adresa URL, apoi returneaza un obiect cu elemente "nume: valoare" formate din perechile "nume=valoare" din acea adresa URL.

Cod functie:
// functie ce returneaza un obiect cu elemente "nume: valoare" din datele dintr-o adresa URL (a perechilor "nume=valoare")
function getDataUrl(url) {
 // javascript/
  var url_data = url.match(/\?([^#]*)/i)[1];          // retine datele dintre caracterul '?' si '#'

  // separe date intr-un array, in caz ca sunt mai multe perechi nume=valoare
  var ar_url_data = url_data.split('&');

  // parcurge array-ul si adauga intr-un obiect elemente cu datele din url nume:valoare
  var data_url = {};
  for(var i=0; i<ar_url_data.length; i++) {
    var ar_val = ar_url_data[i].split('=');           // separa nume si valoare din fiecare pereche
    data_url[ar_val[0]] = ar_val[1];
  }

  return data_url;
}

- Exemplu utilizare functie getDataUrl().
<script type="text/javascript"><!--
// functie ce returneaza un obiect cu elemente "nume: valoare" din datele dintr-o adresa URL (a perechilor "nume=valoare")
function getDataUrl(url) {
 // javascript/
  var url_data = url.match(/\?([^#]*)/i)[1];          // retine datele dintre caracterul '?' si '#'

  // separe date intr-un array, in caz ca sunt mai multe perechi nume=valoare
  var ar_url_data = url_data.split('&');

  // parcurge array-ul si adauga intr-un obiect elemente cu datele din url nume:valoare
  var data_url = {};
  for(var i=0; i<ar_url_data.length; i++) {
    var ar_val = ar_url_data[i].split('=');           // separa nume si valoare din fiecare pereche
    data_url[ar_val[0]] = ar_val[1];
  }

  return data_url;
}

// Utilizare getDataUrl()

var url = 'http://discant.ro/?nume=Mar&id=10';
var data_url = getDataUrl(url);            // Preia obiectul cu datele 'nume: valoare'
var nume = data_url.nume;
var id = data_url.id;

// test
alert('nume: '+ nume + '\n id: '+ id);
//-->
</script>
Rezulta (clic pe buton):

• Adresa paginii curente poate fi preluata cu: window.location . Astfel, ca sa fie folosita adresa URL a paginii accesate, in codul de mai sus se poate inlocui cu acest cod:
 var url = window.location;