所以我有这个HTML网站:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Login Page</title>
<script src="ClientLogic.js"></script>
</head>
<body onload="checkIfAlreadyLoggedIn(logginAndRegisterReqListener('MyLoginForm'))">
<form id="myLoginForm" style="display:none" method="post" action='Login.html'>
<input name="username" id="username" title="username" type="text" placeholder="name" /> <br />
<input name="password" id="password" title="password" type="password" placeholder="password" /> <br/>
<input type="submit" value="Submit">
</form>
</body>
</html>
这是我的Javascript:
function checkIfAlreadyLoggedIn(myFunction) {
makeGETCallWithSpecificURLAndMethod("/userLoggedIn", myFunction);
}
function logginAndRegisterReqListener() {
if (this.responseText == "false") {
for (i = 0; i < arguments.length; i++) {
document.getElementById(arguments[i]).style.display = "block";
}
}
else {
console.log(this.responseText); //undefined if I pass logginAndRegisterReqListener parameters in my HTML side. i get the expected result if I dont pass any parameters.
window.location = '/UserProfile.html';
}
}
function makeGETCallWithSpecificURLAndMethod(url,specFun) {
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", specFun);
oReq.open("GET", url);
oReq.send();
}
所以这就是问题所在。正如你所看到的,我在我的HTML网站中调用了另一个函数的参数的一个函数,这个函数有一个字符串作为参数。当我向我的'logginAndRegisterReqListener'函数传递一个我得到的参数未定义时,会发生什么。但是,如果我只调用函数而不传递字符串参数,我得到预期的结果(true / false)。但当然因为我没有任何参数我不能使任何标签可见(在if子句中)。如何通过我的logginAndRegisterReqListener函数传递参数?或者问题在哪里。
问题可能是我不允许将参数传递给使用addeventlistener调用的函数吗?