任何人都可以向我解释这段代码吗?
<script type="text/javascript">
function querySt(ji) {
hu = window.location.search.substring(1);
gy = hu.split("&");
for (i = 0; i < gy.length; i++) {
ft = gy[i].split("=");
if (ft[0] == ji) {
return ft[1];
}
}
}
var koko = querySt("koko");
document.write(koko);
document.write("<br>");
document.write(hu);
答案 0 :(得分:1)
这是从文档的查询字符串中提取变量的函数,例如如果文件的位置是
example.com/test.htm?koko=123
querySt("koko")
将返回123
。
作为旁注,该函数应使用局部变量来防止污染全局名称空间:
var hu = window.location.search.substring(1);
var gy = hu.split("&");
...
for (var i = 0; i < gy.length; i++) {
答案 1 :(得分:1)
该函数在查询字符串中搜索指定的参数,并返回其值。
想象一下这样的网址http://www.my.org/pg.htm?user=2&role=admin
function querySt(ji) {
// Gets all request parameters at client-side (QueryString)
// hu = ?user=2&role=admin
var hu = window.location.search.substring(1);
// Gets an array of substrings splitted by &
// gy[0] = user=2
// gy[1] = role=admin
var gy = hu.split("&");
// Iterate through the string array
for (i = 0; i < gy.length; i++) {
// Split into key/value pair
// ft[0] = 'user'
// ft[1] = '2'
ft = gy[i].split("=");
// See wether the key is 'koko'
if (ft[0] == ji) {
// return '2' if so
return ft[1];
}
}
}
var user= querySt("user");
document.write(user);
document.write("<br>");
document.write(hu);
在这种情况下,这将打印2。只有在函数Hu
范围之外定义时才会打印querySt
。
答案 2 :(得分:0)
据我所知,代码获取URL的查询字符串部分
例如:http://domain.com?querystparam1=somwthing&querystringparam2=somethingeles ....
查询字符串部分是?querystparam1 = somwthing&amp; querystringparam2 = somethingeles
hu包含除问号标志外的所有内容.. 然后由&amp;分裂创建的数组en签名,然后遍历数组并搜索koko并返回koko的值。