以下是解決在Node.js中或使用像Next.js這樣的工具時可能出現的“referenceerror: document未定義”錯誤的方法。
document
是瀏覽器提供的一個對象,它在服務器端JavaScript環境中無法使用。
我在我的廣泛的DOM Document Object Model指南中詳細描述了document
對象。
特別是在Node.js中,沒有辦法解決這個問題 - 你必須找出使用document
的具體位置,並重新檢查代碼以找出為什麼要訪問document
對象。
您正在後端環境中運行前端代碼。
在Next.js中,您可以通過將代碼包裹在條件語句中來解決此問題。
該代碼可能在兩種情況下運行 - 前端,透過鏈接瀏覽頁面時,以及在服務器端將服務器端加入頁面中時,例如通過運行getServerSideProps()
。
在這種情況下,您可以將對document
的引用限制為一個條件語句,檢查window
對象是否可用,像這樣:
if (typeof window !== 'undefined') {
//這裡`window`可用,所以`window.document`(或簡單地使用`document`)也可用
}
這將解決您的問題,因為您只在瀏覽器環境中運行條件語句內的任何代碼。