我正在尝试将一个外部.js变量添加到我的index.html中,但是该变量只是返回未定义状态。如果该变量在HTML文件中,则它起作用,但是当我从外部.js文件中调用该变量时,它只是读未定义的?
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="assets/css/main.css" />
<title>LoginSystem</title>
<script src="../server.js"></script>
</head>
<body>
<div id="display"></div>
<script>
var t = setInterval(function() {
// you can change `random` to any variable you want to be displayed
document.getElementById("display").innerHTML = random;
}, 500);
</script>
</body>
和javascript文件
var random = Math.random();
任何帮助将不胜感激。
答案 0 :(得分:1)
我无法解释您为什么得到undefined
;但是,由于您在传递到random
的函数范围之外的变量中设置了setInterval
,因此它将始终显示相同的随机数。如果要显示新的随机数,则需要在传递给random
的函数中设置setInterval
。
function getRandomNumber() {
return Math.random();
}
var t = setInterval(function() {
document.getElementById("display").innerHTML = getRandomNumber();
}, 500);
答案 1 :(得分:1)
我认为您可能在server.js的错误目录中看到以下行:
<script src="../server.js"></script>
确保文件路径正确,如果您的索引和server.js位于同一个文件夹中,则应为:
<script src="./server.js"></script>
我已经测试了相同的代码,并且对我来说非常合适。
希望这会有所帮助。
答案 2 :(得分:0)
您的外部javascript文件路径不正确。将../server.js
替换为/server.js