从Javascript中的URL获取参数

GET parameters from URL in Javascript

本文关键字:获取 参数 URL 中的 Javascript      更新时间:2023-09-26

这里是新手。我在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来分割URL,如下所示:

<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>

pag.html上的URL类似于:"pag.html?login=123&password=asd"

但我得到的只是:
登录:
密码:

我哪里错了?

您的函数应该在加载整个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();
})

这只是因为您的代码是在DOM中的#log和#pass渲染之前执行的。只要把你的标签放在结束标签之前,它就会起作用。