标签必须嵌套在内部才生效,仅对直接父级有效;name和value需严格匹配插件要求并正确编码;type与data属性不可缺失;现代浏览器中仅pdf嵌入仍稳定可用。

param 标签必须嵌套在 object 内部才生效
<param> 不是独立标签,它只对直接父级的 <object></object> 生效。放在 <object></object> 外面、或嵌套在 <p></p> 里都无效——浏览器会直接忽略。
常见错误写法:<object></object><param name="flashvars" value="a=1"> 或 <div><param></div>。这类位置的 <param> 根本不会传给插件。
正确结构只有这一种:
<object data="player.swf" type="application/x-shockwave-flash"> <param name="movie" value="player.swf"> <param name="flashvars" value="autoplay=1&lang=zh"></object>
name 和 value 必须严格匹配插件文档要求
不同插件识别的 name 值完全不同:Flash 认 movie 和 flashvars,Java Applet 认 code 和 archive,PDF 插件可能只读 src(但现代浏览器其实更依赖 data 属性)。
大小写、拼写、下划线都不能错:flashvars ≠ FlashVars,filename ≠ file-name。
value 中含特殊字符必须手动编码:
-
&要写成%26 -
=要写成%3D - 中文要整体用
encodeURIComponent()处理,比如user=张三→user=%E5%BC%A0%E4%B8%89
type 和 data 属性缺失会导致 param 被跳过
如果只写 data="demo.pdf" 却没写 type="application/pdf",部分旧版浏览器(尤其是 IE)可能绕过 <param> 解析,直接加载资源,参数就丢了。
稳妥做法是同时指定:
-
type必须与插件实际注册的 MIME 类型一致(例如 Flash 是application/x-shockwave-flash,PDF 是application/pdf) -
data指向可访问的资源路径,且服务端返回的Content-Type要匹配type值 - 若用
classid(如 ActiveX),type可省略,但此时<param>仍需放在<object></object>内部
现代场景下真正能用的只剩 PDF 和 fallback 容器
Flash、Java、Silverlight 等 NPAPI 插件已在所有主流浏览器中彻底禁用,<object></object> + <param> 对它们已完全失效。
目前唯一稳定可用的场景是嵌入 PDF:
<object data="https://www.php.cn/link/c3be52b54804f58495806bd08faba616" type="application/pdf" width="100%" height="600px"> <param name="view" value="FitH"> <p>您的浏览器不支持 PDF 预览,请<a href="https://www.php.cn/link/c3be52b54804f58495806bd08faba616">点击下载</a>。</p> </object>
注意:view=FitH 这类参数是否生效,取决于 PDF 查看器实现,并非所有浏览器都支持;更可靠的做法是用 iframe 或 PDF.js 替代。
另一个仍有价值的用途是作为降级容器:把 SVG、自定义 Web Component 或 <iframe></iframe> 套进 <object></object>,利用其 fallback 机制兜底——这时 <param> 反而成了控制内部逻辑的“配置入口”,但需自行在 JS 中读取并处理。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











