1.incrustar es ilegal
La etiqueta <embed> es una etiqueta privada de Netscape. Aunque la etiqueta <embed> se usa ampliamente, desde HTML3.2, HTML4.0 hasta XHTML1.0, el W3C no ha incluido esta etiqueta. Las páginas que utilizan la etiqueta <embed> no pasarán la validación del W3C.
2. Deberías usar un objeto
El W3C recomienda la etiqueta <object>. Incluso en XHTML2, <img> se reemplaza por <objeto>. El código para insertar flash usando el método <object> es:
El siguiente es el contenido citado: <objeto tipo="aplicación/x-shockwave-flash" datos="prueba.swf" ancho="200" altura="100"> <parm nombre="película" valor="prueba.swf /> </objeto> |
Sin embargo, este método no se puede mostrar correctamente en IE5-IE6/Win (no se puede reproducir continuamente y no se puede reproducir hasta que se descargue), pero se puede mostrar correctamente en versiones inferiores. Más tarde, el método de ajustar primero un archivo flash pequeño y luego incrustar el archivo flash grande resolvió el problema de la reproducción continua. Sin embargo, en IE5 y superiores, a veces el flash todavía no se puede mostrar.
3. Medidas temporales actuales
Entonces, ¿qué debe hacer no sólo para cumplir con los estándares sino también para mostrar el flash correctamente en todos los navegadores? ¿Cómo pasa el sitio web de Macromedia la verificación W3c?
Algunos diseñadores pensaron en usar JavaScript para ocultar etiquetas <embed> ilegales.
El siguiente es el contenido citado: <script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document . write('<embed src="test . swf" ... |
Esta es actualmente una mejor solución. Debes insertar flash y usar js para llamarlo. Este método puede engañar al programa de verificación del W3C y hacer que la página pase la verificación. Pero es simplemente "hacer trampa", no cumplir realmente con los estándares.
¿Cómo lo hace macromedia? Vea este código:
El siguiente es el contenido citado: <!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : el encabezado de aceptación de su navegador indica que tiene Flash 6,0,65,0 o superior, por lo que está bien para esta película Flash 6, aquí viene.> |
Adopta un enfoque de compromiso:
(1) Primero, JavaScript determina la versión de su navegador y la versión de Flash Player;
(2). Genere dinámicamente código HTML en segundo plano según diferentes versiones.
En pocas palabras, el método <object> se utiliza de forma predeterminada. Si el navegador no puede manejar el tipo MIME "application/x-shockwave-flash" del objeto, inserta el elemento secundario <embed>. Para decirlo sin rodeos, esto es similar a usar js para ocultar <embed>. También es un método de "trampa", pero este es el método más estándar y perfecto que se puede realizar en la actualidad.
Si realmente desea abandonar <embed>, sólo puede esperar a que el navegador IE tenga un mejor soporte para <object>, tal vez hasta que salga Longhorn.