外部.js变量返回未定义?

时间:2018-11-16 05:49:49

标签: javascript html variables

我正在尝试将一个外部.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();

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

我无法解释您为什么得到undefined;但是,由于您在传递到random的函数范围之外的变量中设置了setInterval,因此它将始终显示相同的随机数。如果要显示新的随机数,则需要在传递给random的函数中设置setInterval

server.js

function getRandomNumber() {
  return Math.random();
}

index.html

var t = setInterval(function() {
  document.getElementById("display").innerHTML = getRandomNumber();
}, 500);

演示

https://repl.it/@AnonymousSB/RemarkableBowedNagware

答案 1 :(得分:1)

我认为您可能在server.js的错误目录中看到以下行:

 <script src="../server.js"></script>

确保文件路径正确,如果您的索引和server.js位于同一个文件夹中,则应为:

<script src="./server.js"></script>

我已经测试了相同的代码,并且对我来说非常合适。

希望这会有所帮助。

答案 2 :(得分:0)

您的外部javascript文件路径不正确。将../server.js替换为/server.js