itemtype 属性仅支持单个类型 URL,不可用空格、逗号或重复属性写多个值;正确做法是选用更具体的子类型(如 NewsArticle)或通过嵌套 itemscope 实现多类型关联。

itemtype 不支持多重类型
HTML 的 itemtype 属性**只能指定一个类型 URL**,不能用空格、逗号或数组语法写多个值。这是 WHATWG 微数据规范的硬性限制——它定义的是“这个 itemscope 描述的是哪一类事物”,不是“可能属于哪几类”。浏览器和结构化数据测试工具(如 Google Rich Results Test)遇到多个 URL 会直接报错或静默忽略整个 itemscope 块。
想表达“既是 A 又是 B”怎么办
常见需求如“一篇文章同时是 https://schema.org/Article 和 https://schema.org/NewsArticle”,但 itemtype 不允许写成:itemtype="https://schema.org/Article https://schema.org/NewsArticle"。正确解法只有两种:
- 选更具体的子类型:优先用
https://schema.org/NewsArticle(它已继承Article所有属性),无需叠加 - 用嵌套 +
itemprop表达关联:外层用主类型,内层用itemscope itemtype声明另一个实体,并通过itemprop关联,例如:<div itemscope itemtype="https://schema.org/LocalBusiness"><div itemprop="department" itemscope itemtype="https://schema.org/Organization">...</div></div>
为什么不能靠 multiple itemtype “取巧”
有人尝试在同一个元素上重复写 itemtype(如 itemtype="A" itemtype="B"),或用自定义 URL 拼接(如 https://schema.org/Article,NewsArticle)。这些都会失败,因为:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- HTML 解析器只读取第一个
itemtype属性,后续同名属性被覆盖 - Google Structured Data Testing Tool 要求该 URL 必须返回 HTTP 200,且内容需为可验证的词汇表页面;拼接 URL 必然 404
- schema.org 本身通过继承关系表达类型层级(
NewsArticle是Article的子类),不需要也不鼓励“多类型并列”
容易被忽略的兼容性细节
即使你严格按单 URL 设置,仍可能失效:
立即学习“前端免费学习笔记(深入)”;
-
itemtype必须是完整 HTTPS URL,http://或相对路径(如/Person)全部无效 - 大小写敏感:写成
https://schema.org/person(小写 p)会被拒绝,必须是https://schema.org/Person - 末尾斜杠不能多也不能少:
https://schema.org/Person/≠https://schema.org/Person
最终效果不取决于你写了几个类型,而取决于那个唯一 URL 是否被主流解析器认可、是否与内部 itemprop 语义匹配——错配比漏写更危险。


















