一尘不染

如何从javascript检索GET参数?

javascript

对于jspage.html,怎么可以检索GET参数?

对于上面的简单示例,func('returnurl')应为/admin

但是它也应该适用于复杂的querystrngs …


阅读 312

收藏
2020-04-25

共1个答案

一尘不染

与window.location对象。此代码为您提供了没有问号的GET。

window.location.search.substr(1)

从您的示例它将返回 returnurl=%2Fadmin

编辑 :我自由地更改了Qwerty的答案,这确实很好** ,正如他指出的,我完全遵循OP的要求:

function findGetParameter(parameterName) {
    var result = null,
        tmp = [];
    location.search
        .substr(1)
        .split("&")
        .forEach(function (item) {
          tmp = item.split("=");
          if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
        });
    return result;
}

我从他的代码中删除了重复的函数执行,将其替换为变量(tmp),并且decodeURIComponent按照OP的要求添加了它。我不确定这是否是安全问题。

或者使用普通for循环,即使在IE8中也可以使用:

function findGetParameter(parameterName) {
    var result = null,
        tmp = [];
    var items = location.search.substr(1).split("&");
    for (var index = 0; index < items.length; index++) {
        tmp = items[index].split("=");
        if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
    }
    return result;
}
2020-04-25