所以,我有这个非常奇怪的错误。我试图从我的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文件中的脚本中,但我真的很好奇为什么它不能以其他方式工作。
任何提示都非常感谢,提前谢谢。
答案 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();它是否按预期工作?如果它没有,那么可能还有另一个问题。