HTML5, validación de estándares: la etiqueta “object” para insertar Flash

2 mayo, 2012

Siguiendo el método de publicación estático propuesto por la genial librería swfobject, nos encontramos con el siguiente código de inserción de un swf(ejemplo):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="360" id="flashVideo" name="flashVideo">
	<param name="movie" value="example.swf" />
	<param name="menu" value="false" />
	<param name="bgcolor" value="000000" />
<!--[if !IE]>-->
	<object type="application/x-shockwave-flash" data="example.swf" width="640" height="360">
		<param name="menu" value="false" />
		<param name="wmode" value="opaque" />
		<param name="bgcolor" value="000000" />
<!--<![endif]-->
	<img src="alt_content.jpg" alt="alternative content" />
<!--[if !IE]>-->
	</object>
<!--<![endif]-->
</object>

Otra vez, las normas cambian con HTML5, y el código anterior nos devuelve los siguientes errores:

Element object is missing one or more of the following attributes: data, type.

The classid attribute on the object element is obsolete. Use the data and type attributes to invoke plugins. To set a parameter with the name classid, use the param element.

Como viene siendo habitual, los errores corresponden a la parte de object necesaria para la inserción en Internet Explorer, por suerte, basta con utilizar comentarios condicionales para solucionar el problema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!--[if IE]>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="360" id="flashVideo" name="flashVideo">
	<param name="movie" value="example.swf" />
	<param name="menu" value="false" />
	<param name="bgcolor" value="000000" />
<![endif]-->
<!--[if !IE]>-->
	<object type="application/x-shockwave-flash" data="example.swf" width="640" height="360">
		<param name="menu" value="false" />
		<param name="wmode" value="opaque" />
		<param name="bgcolor" value="000000" />
<!--<![endif]-->
	<img src="alt_content.jpg" alt="alternative content" />
<!--[if !IE]>-->
	</object>
<!--<![endif]-->
<!--[if IE]>
</object>
<![endif]-->

Leave a Comment