Next.js中在_document.js的body内添加脚本报错如何解决?
Next.js _document.js 脚本报错修复
- 报错根源是脚本内的语法错误:
append Child存在多余空格,JavaScript原生方法应为appendChild,空格导致代码解析失败,触发了括号不匹配的报错提示。 - 修正后的脚本代码:
<script>(function(d,z,s){s.src='https://'+d+'/401/'+z;try{(document.body||document.documentElement).appendChild(s)}catch(e){}})('goomaphy.com',6701248,document.createElement('script'))</script>
- 更符合Next.js规范的写法:建议在
_app.js中通过useEffect动态添加脚本,避免在_document.js的JSX中直接嵌入复杂脚本:
import { useEffect } from 'react'; function MyApp({ Component, pageProps }) { useEffect(() => { const script = document.createElement('script'); script.src = 'https://goomaphy.com/401/6701248'; try { (document.body || document.documentElement).appendChild(script); } catch(e) {} }, []); return <Component {...pageProps} />; } export default MyApp;
内容的提问来源于stack exchange,提问作者Shilajit Dutta
相关产品推荐
相关产品推荐

