Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 外部.js变量返回时未定义?_Javascript_Html_Variables - Fatal编程技术网

Javascript 外部.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

我试图在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-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>