Assegnare un ID all'elemento body
utilizzando l'URL corrente e jQuery è una soluzione che va bene solo nel caso in cui non è possibile adottare una soluzione lato server. In tutti gli altri casi è da evitare. Si tratta insomma di una soluzione di ripiego.
Un URL può avere varie forme:
- http://host/test.html
- http://host/test.php?id=1
- http://host/test/foo
- http://host/test.html#foo
- http://host/test-2.html
- http://host/foo/test_foo.html
e così via. Quindi il codice che andremo a creare si baserà sull'ultimo segmento dell'URL, ossia la pagina corrente:
var url = location.href,
path = url.replace('http://' + location.host + '/', ''),
parts = '',
last = '';
if(path.indexOf('/') != -1) {
parts = path.split('/'),
last = parts[parts.length - 1];
} else {
parts = path;
last = parts;
}
last.replace('/', '').replace(/(\.php|\.html|\.asp)/g, '').
replace(/\?.+/g, '').replace(/_-\d+/g, '').replace(/#.+/g, '');
$('body').attr('id', last);
Ripeto: si tratta di una soluzione di ripiego da utilizzare come extrema ratio.