как мне сказать «вам нужна флэш-память ...» для встроенных роликов YouTube, если у пользователя нет flash или html5 - PullRequest
0 голосов
/ 14 июля 2010

Я встраиваю клипы YouTube на свой сайт со следующим кодом:

<object width="259" height="215"  style="margin:auto; width:262px; height:217px; position:relative;">
    <param name="movie" value="http://www.youtube.com/v/<?php echo $yt_id; ?>&hl=en&fs=1&rel=0&hl=en&fs=1&rel=0&showinfo=0&autoplay=1"></param>
    <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/v/<?php echo $yt_id; ?>&hl=en&fs=1&rel=0&hl=en&fs=1&rel=0&showinfo=0&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="259" height="215"></embed>
</object>
<p style="margin-top:12px; width: 259px; text-align:center;"><?php echo $yt_title; ?></p>

, который прекрасно работает в браузерах с поддержкой html5 или flash.Однако, если я пытаюсь использовать IE 7/8 без установленной вспышки, я получаю этот заполнитель:

альтернативный текст http://i32.tinypic.com/2yw79ew.jpg

как я могу получить это видео, требующее флеш-плеер"Вместо этого?


обновление: это мой окончательный код, использующий решение Ричарда Дж. П. Ле Гуэна.работает отлично.

<object width="259" height="215"  style="margin:auto; width:262px; height:217px; position:relative;">
    <param name="movie" value="http://www.youtube.com/v/<?php echo $yt_id; ?>&hl=en&fs=1&rel=0&hl=en&fs=1&rel=0&showinfo=0&autoplay=1" />
    <param name="wmode" value="opaque" />
    <!--[if !IE]>-->
        <object type="application/x-shockwave-flash" data="http://www.youtube.com/v/<?php echo $yt_id; ?>&hl=en&fs=1&rel=0&hl=en&fs=1&rel=0&showinfo=0&autoplay=1" allowfullscreen="true" width="259" height="215">
            <param name="wmode" value="opaque" />
            <!--<![endif]-->
            <a href="http://www.adobe.com/go/getflashplayer" style="display: block; text-align:center; padding-top:40px;">
                <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
            </a>
            <!--[if !IE]>-->
        </object>
    <!--<![endif]-->
</object>

Ответы [ 2 ]

3 голосов
/ 14 июля 2010

Это похоже на то, что используется SWFObject для.

С SWFObject вы динамически добавляете <object> и <embed>, используя JavaScript.В вашем (обычном, совместимом со стандартами) HTML-сообщении вы увидите сообщение «Вам нужен Flash и JavaScript для просмотра этого видео», а затем используйте SWFObject, чтобы заменить этот контент для видео.

Быстрый поиск Googleдля SWFObject и YouTube появилась эта статья .У меня нет времени читать, но похоже, что это может помочь.

2 голосов
/ 14 июля 2010

YouTube использует тег <noembed>:

 <embed>blah</embed>
 <noembed>
    <div class="yt-alert yt-alert-error yt-alert-player yt-rounded">
      <img src="http://s.ytimg.com/yt/img/pixel-vfl73.gif" class="icon master-sprite" alt="Alert icon">
      <div class="yt-alert-content"> You need Adobe Flash Player to watch this video. <br> <a href="http://get.adobe.com/flashplayer/">Download it from Adobe.</a> 
      </div>
    </div>
  </noembed>

Хотя я не думаю, что это относится к какому-либо официальному стандарту ...

Редактировать : добавлен тег <embed> в пример, чтобы показать, что делает YouTube.

...