如何使用JavaScript获取来自URL的参数?

时间:2017-11-23 07:57:02

标签: javascript html

我有这样的HTML代码:

<form action="getarrayjs.html" method="get">
<input type="text" id="text1" name="text1"/>
<input type="submit" id="sub1"/>
</form>

我需要将text1值传递给getarrayjs.html页面。 页面代码如下:

<script>
var x = window.location.search;
document.getElementById("write").innerHTML = x;
</script>

<p id="write"></p>

但提交后,getarrayjs.html页面上没有任何内容。解决方案是什么?

1 个答案:

答案 0 :(得分:0)

使用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要求的那样。我不确定这可能是也可能不是安全问题。

或者使用plain 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;
}

原始答案在这里:https://stackoverflow.com/a/5448595/8248483

然后:

FIRST CALL <p id="write"></p> 然后才

<script> var x = window.location.search; document.getElementById("write").innerHTML = x; </script>