2010-04-09 35 views
0

编辑//欲检测在负载闪光灯支持(不是用户代理字符串),并且如果访问者正在观看不支持闪存的设备上(从iPhone或iPad改变)我要显示这样的代码:如果它是一个普通访客我想显示此代码显示图像中的地方闪光到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

回答

0

我的理解是,iPad或iPhone UA字符串是这个样子:

的Mozilla/5.0(新iPad; U; CPU iPhone OS 3_2,例如Mac OS X; EN-US)为AppleWebKit/531.21.10(KHTML,例如Gecko)版本/ 4.0.4移动/ 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 
} 
0

Adob​​e的网站演示Flash Player检测http://www.adobe.com/support/flash/how/shock/javaplugs/javaplugs04.html

嗅探用户代理字符串(执行浏览器检测)通常是一个糟糕的主意(http://www.quirksmode.org/js/support.html) - 您想要检测特定的支持。当iPad/iPhone奇迹般地开始支持Flash时,你的网站会发生什么?您将不必要地惩罚那些用户,直到您删除浏览器嗅探代码。

如果您测试功能,您将向任何没有使用闪光灯的人展示图像,而不仅仅是我(Pad | Phone)用户,并且您将向任何开始支持闪光灯的人展示闪光灯。

+0

怎么样谁拥有的Flash功能的浏览器,但没有安装Flash用户?你不想把他们与没有Flash功能的浏览器的用户区别开来吗? – 2010-04-09 20:23:24

+0

检测用户字符串与支持是有道理的;所以如果我想检测支持,如果不支持闪存显示图像什么代码可以做的伎俩? – poindexter 2010-04-09 20:34:42

0

使用JavaScript的用户代理检测的东西可以操纵像下面的例子:

 


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