param标签是为object等嵌入对象提供初始化参数的html元素,仅在对象实例化时生效,name和value属性成对定义参数,html5中已弃用type等旧属性,且该元素不参与渲染、不可动态修改。

param 标签在现代 HTML 中已基本失效,它只对遗留的 <object></object>(及已废弃的 <applet></applet>、<embed></embed>)生效,且参数仅在对象初始化时读取,后续无法通过 DOM 修改。
param 的 name 和 value 属性必须成对出现
-
name是参数名,必须是字符串,大小写敏感,例如"autoplay"、"movie"、"bgcolor" -
value是对应值,类型由宿主插件解释,HTML 不校验,可为数字、布尔字符串或路径 - 两者都必须写在同一个
<param>标签内,不能拆开或用 JS 动态赋值后“触发重载” - 浏览器不会报错,但插件可能静默忽略缺失
name或空value的<param>
param 只在 <object></object> 初始化阶段起作用
- 插件(如旧版 Flash、QuickTime、Java Applet)在
<object></object>元素被解析并创建实例时,一次性读取所有子<param> - 后续修改
document.getElementById("myParam").value = "new"完全无效:Parameter 对象的属性变更不传递给底层插件 - 若需运行时调整,必须调用插件暴露的 JS 接口(如
flashObject.SetVariable()),而非操作param元素
HTML5 中已被弃用的属性仍会引发兼容性问题
-
type和valuetype在 HTML4 中存在,但 HTML5 明确不支持;若误写,部分浏览器(如旧版 IE)可能解析异常,现代浏览器直接忽略 -
<param>本身无需闭合标签(<param name="x" value="y">合法),但在 XHTML 或 strict 模式下必须自闭合(<param name="x" value="y">),混用易导致解析失败 - 不支持 CSS 样式、不响应事件(
onclick等无效),也不参与渲染流,display: none或visibility: hidden对其无意义
param 的核心限制在于:它不是配置接口,而是初始化快照。真正需要动态参数控制时,应绕过它,直接使用插件文档指定的 JS API,或迁移到现代替代方案(如 <video></video> 的 autoplay 布尔属性、data- 属性 + 自定义组件逻辑)。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











