无法调用在单独文件中定义的功能

时间:2018-10-07 08:18:10

标签: javascript html

我在文件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的文件夹中。

2 个答案:

答案 0 :(得分:3)

更好的做法是,在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>

答案 1 :(得分:0)

检查“ index.js”的文件权限,可能无法访问?

也可以尝试将其称为

<script src="../yourFolder/index.js"></script>
相关问题