javascript - 在 .ejs 文件中使用 .js 文件中的函数
问题描述
我有一个 .ejs 文件,我试图从中访问 .js 文件中的函数。这两个都包含客户端代码。我的问题是,当我尝试从 .ejs 文件调用函数时,由于 .js 没有被使用,所以找不到该函数。
我在 .ejs 文件的标签中有一个指向 .js 文件的链接。
有人可以帮我解决这个问题,因为我对 Javascript 还是很陌生?
.ejs 文件内容:
...
<button type="button" onclick="overlayOn()">view comment</button>
.js 文件有一个名为 overlayOn() 的函数
function overlayOn() {
document.getElementById("overlay").style.display = "block";
}
错误:
Uncaught ReferenceError: overlayOn is not defined
at HTMLButtonElement.onclick
解决方案
您可能必须将所有事件函数包装在文档加载函数中。来自https://developer.mozilla.org/enUS/docs/Web/API/Window/DOMContentLoaded_event:
window.addEventListener('DOMContentLoaded', (event) => {
console.log('DOM fully loaded and parsed');
});
如果 DOM 在您的脚本文件运行后加载,那么它们的目标是尚未加载的内容。作为一项额外的预防措施,将脚本标签放在正文元素的底部,以便在页面的其余部分加载后运行。希望这有效!
推荐阅读
- angular - Ionic 5 - Angular 和服务器端重新渲染 (SSR)。错误:无法重新定义属性:构造函数
- spring-boot - Spring Security 在构建用户主体之前应用 HttpSecurity 过滤器
- android - Recyclerview 视图未填充
- python - 在一行中的 2 个数据框列上应用 Lambda
- mobile - Godot 对象以不同的速度移动
- javascript - 我将如何使用两个不同版本的 discord.js | Discord.js 机器人
- excel - 根据电源查询中的最新日期删除重复项
- c - 共享内存c中结构中的动态二维数组
- python - 保存熊猫数据框
- c# - 如何使用同一类中的函数编辑 Main() 中的值?