外部JavaScript文件无法正常工作 - ReferenceError

时间:2017-05-13 14:26:27

标签: javascript html referenceerror

所以,我有这个非常奇怪的错误。我试图从我的HTML文件链接到外部JS文件。无论我做什么,都无法调用外部JS文件中的函数。

这是我的HTML代码:

<html>
    <head>
        <meta charset="UTF-8">
        <script src="cookies.js"></script>
        <script type="text/javascript">
            //some other JavaScript...
            function test() {
                extTest();
            }
        </script>
    </head>
    <body>
        <button type="button" onclick="test();">Test</button>
    </body>
</html>

这是我的外部JavaScript文件:

function extTest() {
    alert("Hello world");
}

(我简化了两个代码块以仅包含必要的行。)

所以,每当我点击按钮时,函数extTest()就会打开一个弹出“Hello world”的弹出窗口。但是没有调用extTest()。相反,我得到一个ReferenceError说“extTest未定义”。问题出现在Firefox以及Chrome和Edge中。

两个文件(HTML和JS)都在我的笔记本电脑上的同一目录中。我尝试使用相对链接链接到JS文件(如上面的代码所示),使用相对链接。当前目录(./cookies.js)和绝对链接(/ C:/ ...)。我也尝试将JS文件放在自己的文件夹中并链接到它,它不起作用。

在JavaScript方面,我认为自己还是一个初学者,但我已经使用了外部JS文件并且它有效。你们知道这个错误来自哪里吗?我的意思是,我可以将外部文件中的所有代码放入HTML文件中的脚本中,但我真的很好奇为什么它不能以其他方式工作。

任何提示都非常感谢,提前谢谢。

2 个答案:

答案 0 :(得分:0)

你可以像这样使用,你不需要在里面制作另一个函数,因为我想你在cookies.js中制作了js代码

<html>
    <head>
        <meta charset="UTF-8">
        <script src="cookies.js"></script>
    </head>
    <body>
        <button type="button" onclick="extTest();">Test</button>
    </body>
</html>

答案 1 :(得分:0)

我说最初看起来你正在声明你的功能测试而不是调用它。尝试在下面放一条线: test();

一个问题,如果你同样在你的外部.js文件的底部调用你的extTest函数,我的意思是再次添加一行表示 extTest();它是否按预期工作?如果它没有,那么可能还有另一个问题。