在Javascript中从URL获取参数

时间:2015-03-21 18:02:18

标签: javascript url

新手在这里。 我已经在index.html中创建了一个简单的表单,如下所示:

<form name="parameters" METHOD="GET" ACTION="pag1.html">
login: <INPUT TYPE="text" NAME="login"> 
password: <INPUT TYPE="text" NAME="password"> 
<input type="submit" value="ok">
</form>

在pag1.html上我已经放置了我的javascript来拆分网址,如下所示:

<head>
<script language="JavaScript">
function processUser()
  {
    var parameters = location.search.substring(1).split("&");

var temp = parameters[0].split("=");
l = unescape(temp[1]);
temp = parameters[1].split("=");
p = unescape(temp[1]);
document.getElementById("log").innerHTML = l;
document.getElementById("pass").innerHTML = p;
  }
</script>
</head>

还有两个DIV来显示它们:

<div id="log">LOGIN:</div>
<div id="pass">PASSWORD:</div>

pag1.html上的网址如下:&#34; pag1.html?login = 123&amp; password = asd&#34;

但我得到的只是:
登录:
PASSWORD:

我哪里出错?

2 个答案:

答案 0 :(得分:1)

这只是因为你的代码是在DOM中的#log和#pass渲染之前执行的。只需将你的标记放在结束标记之前就可以了。

答案 1 :(得分:1)

加载完整个HTML后应调用您的函数。为此,您需要将函数作为DOMContentLoaded事件的回调函数。

document.addEventListener("DOMContentLoaded", function(){
    function processUser()
    {
         var parameters = location.search.substring(1).split("&");

         var temp = parameters[0].split("=");
         l = unescape(temp[1]);
         temp = parameters[1].split("=");
         p = unescape(temp[1]);
         document.getElementById("log").innerHTML = l;
         document.getElementById("pass").innerHTML = p;
    }

    processUser();
})