Javascript自定义函数判断网站访问类型是PC还是移动终端

myGodsky 2014-01-10

由于很多移动终端不支持 Flash,因此 许多绚丽多彩的 Flash效果出不来。如果,能够判断出访问Web网页的类型(PC还是移动终端)。就可以对症下药,找出解决的办法!

访问的类型为移动终端我们就用.gif代替Flash(.swf后缀)动画,PC端就不做改变。这样就比较完美了!

如下所示,函数 flashChecker() 就是用来检测访问的类型。

代码如下:

<script language="javascript" type="text/javascript"> 
/* 
*用来检测是 PC还是移动终端 
*返回:flashChecker().f == true PC终端 
* 反之为移动终端 
*/ 
function flashChecker() { 
var hasFlash = 0; 
var flashVersion = 0; 
var isIE = /*@cc_on!@*/0; 
if (isIE) { 
var swf = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); 
if (swf) { 
hasFlash = 1; 
VSwf = swf.GetVariable("$version"); 
flashVersion = parseInt(VSwf.split(" ")[1].split(",")[0]); 
} 
} 
else { 
if (navigator.plugins && navigator.plugins.length > 0) { 
var swf = navigator.plugins["Shockwave Flash"]; 
if (swf) { 
hasFlash = 1; 
var words = swf.description.split(" "); 
for (var i = 0; i < words.length; ++i) { 
if (isNaN(parseInt(words[i]))) { 
continue; 
} 
flashVersion = parseInt(words[i]); 
} 
} 
} 
} 
return { 
f: hasFlash, v: flashVersion 
}; 
} 
</script>

扩充:

代码如下:

<script language="javascript" type="text/javascript"> 
/* 
* 根据参数 输出swf动画 
* url :单击 swf动画 后的跳转地址 
* swfLink: *.swf 素材地址 
*/ 
function GetSwfHtml(url, swfLink) { 
html = "<a style='position: absolute; top: 0; left: 0; bottom: 0; right: 0; display: block; " + 
"width: 100%; height: expression(this.parentNode.scrollHeight); filter: alpha(opacity=0);" + 
"opacity: 0; background: #FFF;' href='" + url + "' target='_blank'>" + 
"</a>" + 
"<object width='590' height='55' align='middle'>" + 
"<param name='allowScriptAccess' value='never' />" + 
"<param name='quality' value='high' />" + 
"<param name='wmode' value='transparent' />" + 
"<param name='movie' value='" + swfLink+ "' />" + 
"<embed wmode='transparent' src='" + swfLink+ "' quality='high' " + 
"width='590' height='55' align='middle' allowscriptaccess='never' type='application/x-shockwave-flash' " + 
"pluginspage='" + url + "' />" + 
"</object>"; 


return html; 
} 
</script>

相关推荐