新手在这里。 我已经在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:
我哪里出错?
答案 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();
})