![](/img/trans.png)
[英]Why can't I use functions from javascript-files that are imported by require()?
[英]Can I use imported functions and classes globally in JavaScript?
我想从html标头文件中的所有类切换到模块方法。
我想在按钮和其他元素上使用一些方法和功能。
在我的index.html的头部部分:
<script src="js/main.js" type="module" defer></script>
在main.js中:
import {writeAlert} from './test.js';
在test.js中:
export function writeAlert () {
alert('I am an alert');
}
在index.html的body元素内部
<button onlick="writeAlert()">Alert</button>
我收到错误消息,即未定义函数(或在其他情况下为类)。 那么,实现导入功能的全局使用的方法是什么? 客户实际上可以通过这种方法查看我的整个源代码吗?
在模块中导入的标识符在外部不可见。
两种解决方案,按个人喜好顺序排列:
<button id="alertButton">Alert</button>
main.js
或另一个导入writeAlert
模块中: document.addEventListener("DOMContentLoaded", () => { document.getElementById("alertButton").onclick = writeAlert; });
writeAlert
到模块之一中的window
上: import { writeAlert } from "./test.js"; window.writeAlert = writeAlert;
这样,无需任何导入即可在代码,HTML或JS中的任何位置访问writeAlert
。 但这恰恰违背了使用导入的目的,并且不那么优雅。 这是一个不完整的答案。 但是,相同的想法可以进一步扩展。
在main.js中:
import {writeAlert} from './test.js';
window.writeAlert = writeAlert;
之后,可以从HTML文件访问“ writeAlert”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.