Javascript 外部.js变量返回时未定义?
我试图在index.html中加入一个外部.js变量,但是该变量没有定义。如果变量在HTML文件中,它就可以工作,但是当我从一个外部的.js文件调用它时,它只是读取未定义的?Javascript 外部.js变量返回时未定义?,javascript,html,variables,Javascript,Html,Variables,我试图在index.html中加入一个外部.js变量,但是该变量没有定义。如果变量在HTML文件中,它就可以工作,但是当我从一个外部的.js文件调用它时,它只是读取未定义的? <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Comp
<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>
非常感谢您提供的任何帮助。我无法解释您为什么会得到
未定义的;但是,由于您在传递到setInterval
的函数范围之外的变量中设置了random
,因此它将始终显示相同的随机数。如果希望显示新的随机数,则需要在传递给setInterval
的函数中设置random
<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>
server.js
index.html
演示
我认为您可能在错误的目录中查找您的server.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>
<script src="../server.js"></script>
确保文件路径正确,如果索引和server.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>
<script src="./server.js"></script>
我已经测试了相同的代码,它非常适合我
<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文件路径不正确。将./server.js
替换为/server.js
是否确实加载了server.js?如果删除var random=Math.random(),我相信是这样的;它只是不显示任何内容,好像它看到了变量,但认为它没有定义?div显示读取未定义。向js文件添加控制台日志或警报,并检查是否已执行。如果加载了server.js,请查看网络选项卡,代码没有问题,regardsI运行了一个警报,以查看函数是否正在运行,并且它显示为它正在运行,但它在同一文件中工作,因此我不知道。因为您确认路径正确,我已经用我怀疑的问题更新了我的答案。我一直收到这个消息,我在同一个文件夹中创建了一个test.js,但加载源“”失败。您使用的是哪台服务器?快车?听起来可能存在配置问题。我将test.js移回server.js所在的位置,并将其设置为工作状态,因此我不知道X)
<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>