You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Custom HTML Elements实现公共页头时VS Code报错问题求解

报错原因

1. JavaScript字符串语法错误

你给this.innerHTML赋值的HTML内容没有使用正确的字符串包裹符。JavaScript语法要求字符串必须用引号包裹,其中多行HTML内容推荐使用**反引号(`,键盘左上角ESC下方按键)**作为模板字符串的包裹符,你当前代码中直接裸写HTML标签,不符合JS语法规范,因此VS Code会抛出语法错误。

2. 额外可修复问题

你mainpage.html中的script标签属性拼写错误,scr需要改为src,否则浏览器无法正常加载JS文件,自定义组件也不会生效。

修正后的代码示例

class mainmenu extends HTMLElement {
    connectedCallback() {
        // 使用反引号包裹多行HTML内容
        this.innerHTML = `
        <h1>
        test
        </h1>
        
        <header>
            <nav>
            <ul>
                <li><a href="#">Lists</a></li>
                <li><a href="#">Sales</a></li>
                <li><a href="#">Purchases</a></li>
                <li><a href="#">Received</a></li>
                <li><a href="#">Payments</a></li>
                <li><a href="#">Adjustments</a></li>
                <li><a href="#">Reports</a></li>  
            </ul>
            </nav>
        </header>       
        `
    }
}

customElements.define('mainheader',mainmenu)

mainpage.html(修正script标签部分)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Main Page</title>
    <!--<link rel="stylesheet" href="style.css"> -->
    <!-- 修正scr为src,属性值添加引号更符合规范 -->
    <script type="module" src="mainmenu.js"></script>
</head>
<body>
    <mainheader></mainheader>
</body>
</html>

内容的提问来源于stack exchange,提问作者mra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:36:04