Javascript 在.ejs文件中使用.js文件中的函数

Javascript 在.ejs文件中使用.js文件中的函数,javascript,ejs,client-side,Javascript,Ejs,Client Side,我有一个.ejs文件,我试图从中访问一个.js文件中的函数。它们都包含客户端代码。我的问题是,当我试图从.ejs文件调用该函数时,由于没有使用.js,因此找不到该函数 我在.ejs文件的标记中有一个指向.js文件的链接 有人能帮我解决这个问题吗?因为我对Javascript还很陌生 .ejs文件内容: ... <button type="button" onclick="overlayOn()">view comment</button> 错误: Uncaught R

我有一个.ejs文件,我试图从中访问一个.js文件中的函数。它们都包含客户端代码。我的问题是,当我试图从.ejs文件调用该函数时,由于没有使用.js,因此找不到该函数

我在.ejs文件的标记中有一个指向.js文件的链接

有人能帮我解决这个问题吗?因为我对Javascript还很陌生

.ejs文件内容:

...
<button type="button" onclick="overlayOn()">view comment</button>

错误:

Uncaught ReferenceError: overlayOn is not defined
    at HTMLButtonElement.onclick 

您可能需要将所有事件函数包装在文档加载函数中。 发件人:


如果DOM在脚本文件运行后加载,则它们的目标是尚未加载的内容。作为额外的预防措施,将脚本标记放在body元素的底部,以便在加载页面其余部分后运行。希望这能奏效

通过使用以下行解决了此问题:

app.use("/public", express.static('public'));

您在哪里将js文件附加到html代码?很抱歉,这是一个错误。我在.ejs文件标记中链接了.js文件。我没有单独的HTML文件。不幸的是,这似乎没有什么区别。js文件没有出现在开发者工具的“源”选项卡中。你能显示完整的ejs文件吗?看看东西在哪里会很有用。您是否仔细检查了脚本标记上的文件路径是否正确?
window.addEventListener('DOMContentLoaded', (event) => {
console.log('DOM fully loaded and parsed');
}); 
app.use("/public", express.static('public'));