首页 > 解决方案 > 当我将 Javascript 函数从内联代码移动到单独的 js 文件时,我得到“函数未定义”

问题描述

我正在尝试做一个非常简单的事情:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script src="js/test.js" type="text/js"></script>
<button onclick="test()" type="submit">Test</button>
</body>
</html>

浏览器找到 js/test.js 并包含:

function test() {
    alert("test");
}

打开页面并单击按钮时,没有任何反应,我可以在控制台中看到:

Uncaught ReferenceError: test is not defined
    at HTMLButtonElement.onclick (test:7)

我试图将脚本导入移动到按钮上方或下方,或标题中。我试图在我的 js 文件中使用“window.setlocale = function”。我试图在测试方法中不放任何东西。我用 JSLint 检查了错误(没有错误)。

当我检查源代码时,我可以看到 js 文件,当我点击它时浏览器会打开它。

我可以让Javascript工作的唯一方法是内联编写它......

也许问题出在我的环境上?

为了运行它,我使用了一个 Apache 服务器,它被配置为在 localhost:8077 上提供它。到目前为止我工作得很好。我使用 Laravel 7.10、PHP 7.4... 工作正常。为了运行它,我创建了一个简单的路由,它显示了上面复制/粘贴的 HTML 内容的视图(一个简单的 index.blade.php)。它在“ http://localhost:8077/test ”上显示正常,没问题。

我也尝试使用 laravel 表示法

<script src="{{ asset('js/test.js') }}" type="text/js"></script>

但它给出了相同的结果。

我还激活了 PHP 调试栏(一个 Laravel 插件),它没有显示任何错误。视图已正确加载和显示。

另外,我使用 PHPStorm,它没有检测到任何问题。

已经 2 天了,我无法让这个看似非常基本的东西工作,请帮助我 m(_ _)m

标签: javascripthtmllaravel

解决方案


请将 js 文件作为参考添加到核心文件的标头部分。外部参考。


推荐阅读