我可以在JavaScript中全局使用导入的函数和类吗?

我可以在JavaScript中全局使用导入的函数和类吗?,javascript,import,export,Javascript,Import,Export,我想从html头文件中的所有类切换到模块方法 我想在按钮和其他元素上使用一些方法和函数 在标题部分的my index.html中: <script src="js/main.js" type="module" defer></script> 在test.js中: export function writeAlert () { alert('I am an alert'); } 在index.html的body元素中 <button onlick="wri

我想从html头文件中的所有类切换到模块方法

我想在按钮和其他元素上使用一些方法和函数

在标题部分的my index.html中:

<script src="js/main.js" type="module" defer></script>
在test.js中:

export function writeAlert () {
    alert('I am an alert');
}
在index.html的body元素中

<button onlick="writeAlert()">Alert</button>

我得到的错误消息是,函数或在其他情况下,类没有定义。那么,实现导入函数的全局使用的方法是什么呢?客户机真的能够通过这种方法看到我的全部源代码吗?

在模块中导入的标识符在外部是不可见的

按照个人偏好的顺序,有两种解决方案:

将回调安装从HTML移动到JS: 将按钮定义更改为:警报 将以下代码添加到main.js或导入writeAlert的其他模块: 将writeAlert导出到其中一个模块中的窗口:
import { writeAlert } from "./test.js";
window.writeAlert = writeAlert;
通过这种方式,WriteAllert可以在代码中的任何地方(HTML或JS)访问,而无需任何导入。但这与使用进口商品的初衷背道而驰,也没有那么优雅。
模块中导入的标识符在外部不可见

按照个人偏好的顺序,有两种解决方案:

将回调安装从HTML移动到JS: 将按钮定义更改为:警报 将以下代码添加到main.js或导入writeAlert的其他模块: 将writeAlert导出到其中一个模块中的窗口:
import { writeAlert } from "./test.js";
window.writeAlert = writeAlert;
通过这种方式,WriteAllert可以在代码中的任何地方(HTML或JS)访问,而无需任何导入。但这与使用进口商品的初衷背道而驰,也没有那么优雅。
这是一个不完整的答案。但是,同样的想法可以进一步扩展

在main.js中:

import {writeAlert} from './test.js';
window.writeAlert = writeAlert;

之后,可以从HTML文件访问“writeAlert”

这是一个不完整的答案。但是,同样的想法可以进一步扩展

在main.js中:

import {writeAlert} from './test.js';
window.writeAlert = writeAlert;
之后,可以从HTML文件访问“writeAlert”