我有这样的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页面上没有任何内容。解决方案是什么?
答案 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>