簡體   English   中英

在 .ejs 文件中使用 .js 文件中的函數

[英]Using functions from .js file in .ejs file

我有一個 .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 

此問題已通過使用以下行解決:

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

您可能需要將所有事件函數包裝在文檔加載函數中。 來自https://developer.mozilla.org/enUS/docs/Web/API/Window/DOMContentLoaded_event

window.addEventListener('DOMContentLoaded', (event) => {
console.log('DOM fully loaded and parsed');
}); 

如果 DOM 在您的腳本文件運行后加載,那么它們的目標是尚未加載的內容。 作為額外的預防措施,將腳本標簽放在 body 元素的底部,以便它在頁面的其余部分加載后運行。 希望這有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM