首页 > 解决方案 > 无法调用在单独文件中定义的函数

问题描述

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

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

在我的index.html,我有:

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

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

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

未捕获的 ReferenceError:未定义登录

两者index.htmlindex.js在同一个文件夹中。我在这里想念什么?

编辑

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

标签: javascripthtml

解决方案


作为一种更好的做法,在 EcmaScript 6 中实现此目的的另一种方法是简单地定义函数并将其“导出”为模块。然后,您可以从另一个 Javascript 文件或 HTML 标记中“导入”模块,如下所示,确保文件路径准确:

./src/index.js:

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

export { login };

索引.html:

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

推荐阅读