1.embed é ilegal
A tag <embed> é uma tag privada do Netscape Embora a tag <embed> seja amplamente usada, de HTML3.2, HTML4.0 a XHTML1.0, o W3C não incluiu esta tag. As páginas que usam a tag <embed> não passarão na validação do W3C.
2. Você deve usar objeto
O W3C recomenda a tag <object>. Mesmo em XHTML2, <img> é substituído por <object>. O código para inserir flash usando o método <object> é:
A seguir está o conteúdo citado: <object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object> |
No entanto, este método não pode ser exibido corretamente no IE5-IE6/Win (não pode ser reproduzido continuamente e não pode ser reproduzido até que seja baixado), mas pode ser exibido corretamente em versões anteriores. Posteriormente, o método de ajustar primeiro um arquivo flash pequeno e depois incorporar o arquivo flash grande resolveu o problema de reprodução contínua. No entanto, no IE5 e superior, às vezes o flash ainda não pode ser exibido.
3. Medidas temporárias atuais
Então, o que você deve fazer não apenas para cumprir os padrões, mas também para exibir o flash corretamente em todos os navegadores? Como o site da macromedia passa na verificação W3c?
Alguns designers pensaram em usar JavaScript para ocultar tags <embed> ilegais.
A seguir está o conteúdo citado: <script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document . write('<embed src="test . swf" ... |
Esta é atualmente uma solução melhor. Você deve inserir o flash e usar js para chamá-lo. Este método pode enganar o programa de verificação W3C e fazer com que a página passe na verificação. Mas é apenas “trapaça”, não atendendo realmente aos padrões.
Como a macromedia faz isso? Veja este código:
A seguir está o conteúdo citado: <!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : o cabeçalho de aceitação do seu navegador indica que você tem Flash 6,0,65,0 ou melhor, então você está bem para este filme do Flash 6, aqui está vem. --> |
Adota uma abordagem de compromisso:
(1). Primeiro, o javascript determina a versão do seu navegador e a versão do flash player;
(2). Gerar código HTML dinamicamente em segundo plano de acordo com diferentes versões.
Simplificando, o método <object> é usado por padrão. Se o navegador não puder lidar com o tipo MIME "application/x-shockwave-flash" do objeto, ele insere o elemento filho <embed>. Para ser franco, isso é semelhante a usar js para ocultar <embed>. Também é um método de "trapaça", mas é o método mais padrão e perfeito que pode ser feito no momento.
Se você realmente quiser abandonar <embed>, você só pode esperar que o navegador IE tenha melhor suporte para <object>, talvez até o lançamento do Longhorn.