Posibil Duplicat: Cum pot obține valori șir de interogare?
Am următorul URL:
http://www.mysite.co.uk/?location=mylocation1
Ceea ce am nevoie este de a obține valoarea de "locație" din URL într-o variabilă și apoi să-l utilizați într-un cod jQuery:
var thequerystring = "getthequerystringhere"
$('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);
Stie cineva cum se poate lua ca valoare folosind JavaScript sau jQuery?
De la: http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html
Aceasta este ceea ce ai nevoie :)
Codul de mai jos va returna un Obiect JavaScript care conține URL-ul parametri:
// 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;
}
De exemplu, dacă aveți URL-ul:
http://www.example.com/?me=myValue&name2=SomeOtherValue
Acest cod va reveni:
{
"me" : "myValue",
"name2" : "SomeOtherValue"
}
și tu poți face:
var me = getUrlVars()["me"];
var name2 = getUrlVars()["name2"];
Pentru a prelua întregul querystring de la URL-ul curent, începând cu ?
caracter, puteți utiliza
location.search
https://developer.mozilla.org/en-US/docs/DOM/window.location
Exemplu:
lang-js // URL = https://example.com?a=a%20a&b=b123 console.log(locație.de căutare); // Afișează "?o=o%20a&b=b123"
În ceea ce privește preluarea specifice querystring parametri, în timp ce, deși clase, cum ar fi URLSearchParams
și URL
există, ele sunt't susținută de Internet Explorer în acest moment, și ar trebui să fie evitate. În schimb, ai putea încerca ceva de genul asta:
``lang-js
/**
întoarcere {}; }
/**
getUrlParams()
Puteți folosi de mai sus astfel: ``lang-js // Utilizarea locație.căutare să urlParams = getUrlParams(locație.de căutare); // Presupunem locație.căutare = "?o=1&b=2b2" console.log(urlParams); // Afișează { "o": 1, "b": "2b2" }
// Folosind un URL string const url = 'https://example.com?a=A%20A&b=1'; urlParams = getUrlParams(url); console.log(urlParams); // Afișează { "o": "O", "b": 1 }
// Pentru a verifica dacă un parametru există, pur și simplu: dacă (urlParams.hasOwnProperty('parameterName') { console.log(urlParams.parameterName); }
``
O modalitate ușoară de a face acest lucru cu unele jQuery și drept JS, vizualiza doar consola în Chrome sau Firefox pentru a vedea de ieșire...
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);
Au o privire la acest stackoverflow raspuns.
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, " "));
}
Puteți utiliza metoda de a anima:
de exemplu:
var thequerystring = getParameterByName("location");
$('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);
Facem în acest fel...
String.prototype.getValueByKey = function (k) {
var p = new RegExp('\\b' + k + '\\b', 'gi');
return this.search(p) != -1 ? decodeURIComponent(this.substr(this.search(p) + k.length + 1).substr(0, this.substr(this.search(p) + k.length + 1).search(/(&|;|$)/))) : "";
};