1.вставка незаконна
Тег <embed> является частным тегом Netscape. Хотя тег <embed> широко используется, от HTML3.2, HTML4.0 до XHTML1.0, W3C не включил этот тег. Страницы, использующие тег <embed>, не пройдут проверку W3C.
2. Вы должны использовать объект
W3C рекомендует использовать тег <object>. Даже в XHTML2 <img> заменяется на <object>. Код для вставки flash с использованием метода <object>:
Ниже приводится цитируемое содержание: <object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object> |
Однако этот метод не может корректно отображаться в IE5-IE6/Win (он не может воспроизводиться постоянно и не может воспроизводиться до тех пор, пока не будет загружен), но он может корректно отображаться в более низких версиях. Позже метод сначала настройки небольшого флэш-файла, а затем встраивания большого флэш-файла решил проблему непрерывного воспроизведения. Однако в IE5 и выше иногда флеш-файл по-прежнему не отображается.
3. Текущие временные меры
Так что же нужно сделать, чтобы не только соответствовать стандартам, но и корректно отображать Flash во всех браузерах? Как сайт Macromedia проходит проверку W3c?
Некоторые дизайнеры думали об использовании JavaScript, чтобы скрыть незаконные теги <embed>.
Ниже приводится цитируемое содержание: <script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document . write('<embed src="test . swf" ... |
На данный момент это лучшее решение. Вы должны вставить flash и использовать js для его вызова. Этот метод может обмануть программу проверки W3C и заставить страницу пройти проверку. Но это просто «обман», не совсем соответствующий стандартам.
Как макромедиа это делает? Посмотрите этот код:
Ниже приводится цитируемое содержание: <!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : заголовок принятия вашего браузера указывает, что у вас установлена Flash 6,0,65,0 или более поздняя версия, так что вас устраивает этот фильм Flash 6, вот он приходит --> |
Он использует компромиссный подход:
(1) Во-первых, javascript определяет версию вашего браузера и версию флеш-плеера;
(2) Динамически генерировать HTML-код в фоновом режиме в соответствии с различными версиями.
Проще говоря, метод <object> используется по умолчанию. Если браузер не может обработать объект MIME-типа «application/x-shockwave-flash», он вставляет дочерний элемент <embed>. Грубо говоря, это похоже на использование js для скрытия <embed>. Это тоже «читерский» метод, но это самый стандартный и совершенный метод, который можно сделать на данный момент.
Если вы действительно хотите отказаться от <embed>, вам остается только подождать, пока браузер IE улучшит поддержку <object>, возможно, пока не выйдет Longhorn.