Отображение изображения вместо вспышки на iPhone и iPad - PullRequest
0 голосов
/ 09 апреля 2010

Отредактировано // Я хочу обнаружить поддержку флэш-памяти ( не пользовательский строковый агент ) при загрузке и если посетитель просматривает на устройстве, которое не поддерживает флэш-память (изменено с iPhone или iPad ) Я хочу отобразить этот код:

<?php get_header(); ?>

<div class="flash">
<img src="/wp-content/themes/iq-iphone/main-page-image.png"/>
</div>

Если это обычный посетитель, я хочу отобразить этот код:

<?php get_header(); ?>

<div class="flash">
<script type="text/javascript">
    AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','924','height','316','src','<?php bloginfo('template_directory');?>/images/featurePanel','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','<?php bloginfo('template_directory');?>/images/featurePanel','wmode','transparent' ); //end AC code
    </script>
    <noscript>
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="924" height="316">
        <param name="movie" value="<?php bloginfo('template_directory');?>/images/featurePanel.swf" />
        <param name="quality" value="high" />
        <param name="wmode" value="transparent" />
        <embed src="<?php bloginfo('template_directory');?>/images/featurePanel.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="924" height="316"></embed>
      </object>
     </noscript>
</div>

Есть идеи?Спасибо!

[1]: http://testing html

Ответы [ 4 ]

2 голосов
/ 10 апреля 2010

SWFObject - небольшая библиотека JavaScript, предназначенная для решения именно этой проблемы. Есть несколько руководств, связанных с их вики проекта .

0 голосов
/ 03 июня 2013

Используя JavaScript, вы можете манипулировать обнаружением агента пользователя, как показано ниже:



    if((navigator.userAgent.match(/iPad/i) != null) || (navigator.userAgent.match(/iPhone/i) !=null) || (navigator.userAgent.match(/iPod/i) != null)){    
// Write your logic    
}


0 голосов
/ 10 апреля 2010

Сайт Adobe демонстрирует обнаружение Flash Player на http://www.adobe.com/support/flash/how/shock/javaplugs/javaplugs04.html

Обнаружение строки пользовательского агента (определение браузера) обычно является плохой идеей (http://www.quirksmode.org/js/support.html)) - вместо этого вы хотите определить конкретную поддержку. Что происходит с вашим сайтом, когда iPad / iPhone волшебным образом начинает поддерживать флэш-память? Вы будете без необходимости наказывать этих пользователей, пока не удалите код сниффинга браузера.

Если вместо этого вы протестируете возможности, то покажете изображение для всех, у кого нет вспышки, а не только для пользователей i (Pad | Phone), и покажете вспышку всем, кто начнет ее поддерживать.

0 голосов
/ 10 апреля 2010

Насколько я понимаю, строки iPad или iPhone UA выглядят примерно так:

Mozilla / 5.0 (iPad; U; процессор iPhone OS 3_2, как Mac OS X; ru-ru) AppleWebKit / 531.21.10 (KHTML, как Gecko) Версия / 4.0.4 Mobile / 7B314 Safari / 531.21.10

Итак, теоретически, следующее может помочь:

if(preg_match("/iPhone|iPad/", $_SERVER['HTTP_USER_AGENT']) == 1)
{
  //echo out the image code
}
else
{
  //echo out the flash code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...