我正在尝试从浏览器获取 URL 参数。
浏览器有这样的URL
http://localhost/red/prepareslide.php?p=trng&s=1
但我想获取参数,也就是说,我想获取(问号)“?”之后的所有参数
输出应该是这样的 p=trng&s=1
我该怎么做?
这是我的代码:
<!DOCTYPE html>
<html>
</head>
<script>
function call(){
URL = window.location.toString();
var query = URL.match(/\?/);
alert(query);
var queryList = query.split("?");
for (var i=0; i<queryList.length; i++)
{
var element = queryList[i].split("=");
var ex=document.write(element[0] + " = " + unescape(element[1]) + "\r\n");
alert(ex);
}
}
</script>
</head>
<body>
<a href="#" onclick="call();">click</a>
</body>
</html>
最佳答案
编辑:有人通知我的代码段包含缺陷。他是对的。如果 URL 中没有问号,结果将是完整的 url。
因为您的目标是获取问号后面的字符,所以这应该可以完成,
// obtain browser url
var currUrl = document.URL;
// split string to obtain substring
var index; var str;
if((index = currUrl.indexOf("?")) > 0) str = currUrl.substring(index + 1);
但这确实可以更快。就像下面的评论一样,
// obtain browser url
var currUrl = document.URL;
// replace the string that only after ? returns as results
var str = currUrl.replace(/^[^?]*\?/, '');
// check result
if(str != '') {
// do your task here with the result
}
如果这是一个有用的回复,如果您想表扬,请将其提供给 ElLocoCocoLoco(用于他的评论)和/或 Ruslan Bes 用于替换技巧。 (虽然也是正确的)。
关于javascript - 发生后如何获取url参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809578/