我有这样的网址:
http://localhost/PMApp/temp.htm?ProjectID=462
我需要做的是在?符号(查询字符串)后获取详细信息-即ProjectID=462。如何使用JavaScript来获得?
?
ProjectID=462
到目前为止,我所做的是:
var url = window.location.toString(); url.match(?);
我不知道下一步该怎么做。
看一看的MDN文章有关window.location。
window.location
QueryString在中可用window.location.search。
window.location.search
同样适用于旧版浏览器的解决方案
MDN提供了一个如何获取QueryString中可用的单个键的值的示例在以上引用的文章中不再提供 。像这样:
function getQueryStringValue (key) { return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1")); } // Would write the value of the QueryString-variable called name to the console console.log(getQueryStringValue("name"));
在现代浏览器中
在现代浏览器中,您具有searchParamsURL接口的属性,该属性返回URLSearchParams对象。返回的对象有许多方便的方法,包括get方法。因此,与上述示例等效:
searchParams
let params = (new URL(document.location)).searchParams; let name = params.get("name");
该URLSearchParams接口也可以用于在查询字符串格式解析字符串,并把它们变成一个方便URLSearchParams对象。
let paramsString = "name=foo&age=1337" let searchParams = new URLSearchParams(paramsString); searchParams.has("name") === true; // true searchParams.get("age") === "1337"; // true
请注意,该界面上对浏览器的支持仍然受到限制,因此,如果您需要支持旧版浏览器,请坚持第一个示例或使用polyfill