Possible Duplicate: Comment puis-je obtenir les valeurs des chaînes de requête ?
J'ai l'URL suivante :
http://www.mysite.co.uk/?location=mylocation1
Ce dont j'ai besoin est de récupérer la valeur de location
de l'URL dans une variable et de l'utiliser ensuite dans un code jQuery :
var thequerystring = "getthequerystringhere"
$('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);
Quelqu'un sait-il comment récupérer cette valeur en utilisant JavaScript ou jQuery ?
De : http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html
Voici ce dont vous avez besoin :)
Le code suivant renverra un objet JavaScript contenant les paramètres de l'URL :
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
Par exemple, si vous avez l'URL :
http://www.example.com/?me=myValue&name2=SomeOtherValue
Ce code renverra :
{
"me" : "myValue",
"name2" : "SomeOtherValue"
}
et vous pouvez le faire :
var me = getUrlVars()["me"];
var name2 = getUrlVars()["name2"];
Un moyen facile de le faire avec un peu de jQuery et de JS direct, il suffit de visualiser votre console dans Chrome ou Firefox pour voir la sortie ...
var queries = {};
$.each(document.location.search.substr(1).split('&'),function(c,q){
var i = q.split('=');
queries[i[0].toString()] = i[1].toString();
});
console.log(queries);
Jetez un coup d'œil à cette [réponse de stackoverflow][1].
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
Vous pouvez utiliser la méthode pour animer :
ie :
var thequerystring = getParameterByName("location");
$('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);
[1] : https://stackoverflow.com/questions/901115/get-querystring-values-with-jquery/901144#901144