Invalid Markup en W3C al insertar archivo flash en XHTML 1.0 Transitional

How can I include flash in valid (X)HTML Web pages?

Resulta que la forma en que Dreamweaver inserta los flash no es válida para el W3C.

La respuesta que te dan en el sitio de W3C es muy complicada. Hay que modificar el archivo .fla y producir un nuevo .swf

Con un poco de paciencia lograrás conseguir la respuesta correcta para pasar la validación pero ¿Quién tiene tiempo que perder en estos días?

Esta es una solución que encontré después de quemarme los ojos buscando una respuesta, probando y probando entre una y otra cosa, funciona muy bien y es válido:

1
2
3
<object data="archivo.swf" type="application/x-shockwave-flash" width="ancho" height="alto">
	<param name="movie" value="archivo.swf" />
	<param name="quality" value="high" /></object>

Y eso es todo. Ahora bien, no creo que aún exista gente que no tenga instalado el plugin de flash en su navegador, pero de todo hay en este mundo. Entonces podemos usar algo así:

1
2
3
4
5
6
<object data="archivo.swf" type="application/x-shockwave-flash" width="ancho" height="alto">
<param name="movie" value="archivo.swf" />
<param name="quality" value="high" />
 
Texto o contenido alternativo
</object>

De esta forma si no está instalado, se mostrará el texto en pantalla. El problema es que no lo reconoce el IE! Qué raro, verdad? Entonces, aquí viene el truco final.

Vamos a poner algo que sea reconocido en todos los navegadores, y será algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- [if !IE]> -->
<object data="archivo.swf" type="application/x-shockwave-flash" width="ancho" height="alto">
<!-- <![endif]-->
 
<!-- [if IE]>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="ancho" height="alto">
<param name="movie" value="archivo.swf" />
<!--><!--fm-->
<param name="loop" value="true" />
<param name="menu" value="false" />
 
Texto o contenido alternativo.
</object> <!-- <![endif]-->

De esta forma logramos lo siguiente:

  • El código es válido
  • Funciona en todos los navegadores
  • Se mostrará el contenido alternativo si no está instalado el plugin
  • No necesita Javascript
  • Los tags
     

    no se duplican

Han habido sin fin de discusiones sobre esto y no es nada nuevo el tema. Sin embargo, a mi me funciona, otros preferirán el Javascript, en fin, lo dejo a su criterio qué solución desean utilizar.

3 respuestas a «Invalid Markup en W3C al insertar archivo flash en XHTML 1.0 Transitional»

  1. Mozilla Firefox 3.6.2 Windows 7

    Man eres grande gracias por el aporte me has sacado de un grana apuro ya que soy un principiante, felicidades! por tu pagina sigue asi.

  2. Internet Explorer 7.0 Windows XP

    Muy bueno, funciona, pero ¿cómo se podría modificar para que no aparezca el marco gris alrededor de la aplicación? Porque ahora está solucionado el tema de la validación W3C, pero no el tema del marco. Muchas gracias!

Los comentarios están cerrados.