javascript - 无法调用在单独文件中定义的函数

标签 javascript html

我在文件 index.js 中定义了一个函数 login:

function login(un, pass){
    ....
}

在我的 index.html 中,我有:

<head>
    <title>Title</title>
    <script src="index.js"></script>
</head>

<body>
    ....
    <script>
        ....
        login("user", "pass");
    </script>
    ....
</body>

但这在控制台中给出了以下错误:

Uncaught ReferenceError: login is not defined

index.htmlindex.js 都位于同一文件夹中。我在这里缺少什么?

编辑

我错过的一个关键细节是我使用 Flask 服务器托管它。经过一番研究,我意识到 js 文件必须位于名为 static 的文件夹中。

最佳答案

作为更好的实践,在 EcmaScript 6 中实现此目的的另一种方法是简单地定义函数和 'export'它作为一个模块。然后您可以'import'来自另一个 Javascript 文件或 HTML 标记内的模块,如下所示,确保文件路径准确:

./src/index.js:

var login = function (user, pass) { ... }

export { login };

index.html:

<script>
    import login from './src/index'
    ...
    login ("user", "pass");
    ...
</script>

关于javascript - 无法调用在单独文件中定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52686682/

相关文章:

javascript - 菜单动画意外延迟

javascript - 使用 fetch JS 进行异步/等待

javascript - 这是用正则表达式完成的吗?格式化经纬度

html - CSS - 制作一个 "wall"的 div,它们之间没有空格

html - CSS div 超出页面限制,添加水平滚动条

html - 我可以禁用为复选框标记 : in Spring MVC? 生成隐藏字段吗

javascript - 复制数组元素修改并再次添加

php - 使用div id在JS中传递PHP变量

javascript - 通过td类和jquery单元格中的特定值从表中获取行

css - 设置占位符中部分文本的样式