JS判断浏览器是否支持flash的方法

JavaScript026

JS判断浏览器是否支持flash的方法,第1张

�0�2�0�2�0�2 判断浏览器是否支持flash的方法,下面是代码。

<SCRIPT type=text/javascript<!--

var i_flash

var v_flash

// Netscape

if (navigator.plugins) {

for (var i=0i <navigator.plugins.lengthi++) {

if (navigator.plugins[i].name.toLowerCase().indexOf(\"shockwave flash\") = 0) {

i_flash = true

v_flash = navigator.plugins[i].description.substring(navigator.plugins[i].description.toLowerCase().lastIndexOf(\"flash \") + 6, navigator.plugins[i].description.length)}// --</SCRIPT

<SCRIPT type=text/script<!--//IE

on error resume next

set f = CreateObject(\"ShockwaveFlash.ShockwaveFlash\")

if IsObject(f) then

i_flash = true

v_flash = hex(f.FlashVersion())end if

// --</SCRIPT

<SCRIPT type=text/javascript<!--

if (i_flash) {

document.writeln(\"你已经安装了Flash插件\")

if (v_flash) {

document.writeln(\" - 版本 \" + v_flash)} else {

document.writeln(\"你没有安装Flash插件\")

js怎么判断flash是否加载完毕了呢?

我们怎么在flash加载完毕之时,回调一个我们设定的js函数?

这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉!

呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了?

从前都是只知道img.onload等等。

好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢?

没错,就是轮询,然后判断flash的某个方法是否能正常运行?

示例如下(伪代码):

01 (function () {02 var flash = 网页上某个flash对象。03 04 var interval = setInterval(function () {05 try { 06 if(flash.IsPlaying()) { //轮询flash的某个方法即可 07 callBack &&callBack.call(flash, args)//回调函数08 clearInterval(interval) 09 } 10 } catch (ex) {11 12 } 13 }, 1000)14 15 var callBack = function () {16 alert('loaded')17 } 18 })()

//具体运用时,flash放进setInterval或者setTimeout的函数闭包中时,可能会由于JavaScript单线程问题,导致flash不能调用IsPlaying等flash player函数或者调用结果不对等状况,这里有个临时的解决办法,我们可以读取在轮询函数中读取flash的TotalFrames属性,读取得到,我们就可以认为flash已经完全加载到页面中了!!!

您好,感谢您对火狐的支持

下面这个兼容多种浏览器:

<html>

<head>

<SCRIPT type=text/javascript>

window.onload=function(){

var swf

if(navigator.userAgent.indexOf("MSIE")>0) {

try

{

var swf=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")

alert("已安装插件")

}

catch(e)

{

alert("没有安装插件")

}

}

if(navigator.userAgent.indexOf("Firefox")>0 || navigator.userAgent.indexOf("Chrome")>0){

swf=navigator.plugins["Shockwave Flash"]

(swf)?alert("已安装插件"):alert("没有安装插件")

}

}

</script>

</SCRIPT>

<body>

</body>

</html>

您可以在火狐官方网站下载火狐浏览器,在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。