标签没有 object 属性,该属性不存在于html标准中,浏览器会直接忽略;正确传参应使用 标签配合 data 属性和 子元素。

embed 的 object 属性根本不存在
HTML 标准中,<embed></embed> 标签**没有 object 这个属性**。你看到的可能是混淆了 <object></object> 标签的用法,或是某些旧文档/编辑器的错误提示。浏览器会直接忽略任何写在 <embed></embed> 上的 object 属性,既不报错,也不生效。
真正传递对象参数该用 <object></object> + data 和 param
如果目标是嵌入外部资源(如 Flash、PDF、自定义插件)并传参,应使用语义正确的 <object></object> 标签。它的核心参数机制是:
-
data属性:指定主资源 URL(如data="chart.swf"),相当于<embed src="..."></embed>的等效字段 -
<param>子元素:用于传键值对参数,name和value必须成对出现(如<param name="config" value='{"theme":"dark"}'>) - 浏览器按顺序加载
<param>,同名参数后者覆盖前者
注意:<object></object> 内部可嵌套 <embed></embed> 作为 fallback,但此时 <embed></embed> 自身只认 src、type、width 等原生属性,不继承父级 <param> —— 参数需在 <embed></embed> 上重复声明(如 flashvars)。
embed 实际能用的参数只有有限几个
<embed></embed> 是历史遗留标签,行为依赖插件实现,标准支持极弱。它真正被广泛识别的属性只有:
-
src:资源地址(必需) -
type:MIME 类型(如application/x-shockwave-flash),影响插件匹配 -
width/height:尺寸,部分插件据此调整渲染区域 -
flashvars:Flash 场景专用,以&分隔的键值对(如flashvars="id=123&lang=zh") -
allowfullscreen、allowscriptaccess:安全控制布尔属性(值为"true"或省略)
其他任意命名的属性(包括 object、params、config)均无规范定义,不同浏览器或插件可能静默丢弃或误读。
现代替代方案:优先用 JS API 或 iframe
Flash 已淘汰,PDF 可用 <iframe src="doc.pdf"></iframe>;自定义可视化组件应放弃 <object>/<embed></embed></object>,改用:
- Web Components 或框架组件(如 React 的
<chart data="{...}"></chart>) - 通过
postMessage与 iframe 内页面通信(比<param>更可控) - URL query 参数(如
<iframe src="widget.html?theme=dark&id=456"></iframe>),服务端或 JS 解析
硬塞参数到 <embed></embed> 的 object 属性里,只会让调试变得不可预测 —— 因为它从一开始就没被任何规范承认过。










