| <html> | |
| <head> | |
| <script language="JavaScript"> | |
| <!-- | |
| // initialize a variable to test for JavaScript 1.1. | |
| // which is necessary for the window.location.replace method | |
| var javascriptVersion1_1 = false; | |
| // --> | |
| </script> | |
| <script language="JavaScript1.1"> | |
| <!-- | |
| javascriptVersion1_1 = true; | |
| // --> | |
| </script> | |
| <script language="JavaScript"> | |
| <!-- | |
| // initialize global variables | |
| var detectableWithVB = false; | |
| var pluginFound = false; | |
| function goURL(daURL) { | |
| // if the browser can do it, use replace to preserve back button | |
| if(javascriptVersion1_1) { | |
| window.location.replace(daURL); | |
| } else { | |
| window.location = daURL; | |
| } | |
| return; | |
| } | |
| function redirectCheck(pluginFound, redirectURL, redirectIfFound) { | |
| // check for redirection | |
| if( redirectURL && ((pluginFound && redirectIfFound) || | |
| (!pluginFound && !redirectIfFound)) ) { | |
| // go away | |
| goURL(redirectURL); | |
| return pluginFound; | |
| } else { | |
| // stay here and return result of plugin detection | |
| return pluginFound; | |
| } | |
| } | |
| function canDetectPlugins() { | |
| if( detectableWithVB || (navigator.plugins && navigator.plugins.length > 0) ) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| function detectFlash(redirectURL, redirectIfFound) { | |
| pluginFound = detectPlugin('Shockwave','Flash'); | |
| // if not found, try to detect with VisualBasic | |
| if(!pluginFound && detectableWithVB) { | |
| pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1'); | |
| } | |
| // check for redirection | |
| return redirectCheck(pluginFound, redirectURL, redirectIfFound); | |
| } | |
| function detectDirector(redirectURL, redirectIfFound) { | |
| pluginFound = detectPlugin('Shockwave','Director'); | |
| // if not found, try to detect with VisualBasic | |
| if(!pluginFound && detectableWithVB) { | |
| pluginFound = detectActiveXControl('SWCtl.SWCtl.1'); | |
| } | |
| // check for redirection | |
| return redirectCheck(pluginFound, redirectURL, redirectIfFound); | |
| } | |
| function detectQuickTime(redirectURL, redirectIfFound) { | |
| pluginFound = detectPlugin('QuickTime'); | |
| // if not found, try to detect with VisualBasic | |
| if(!pluginFound && detectableWithVB) { | |
| pluginFound = detectQuickTimeActiveXControl(); | |
| } | |
| return redirectCheck(pluginFound, redirectURL, redirectIfFound); | |
| } | |
| function detectReal(redirectURL, redirectIfFound) { | |
| pluginFound = detectPlugin('RealPlayer'); | |
| // if not found, try to detect with VisualBasic | |
| if(!pluginFound && detectableWithVB) { | |
| pluginFound = (detectActiveXControl('rmocx.RealPlayer G2 Control') || | |
| detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)') || | |
| detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control (32-bit)')); | |
| } | |
| return redirectCheck(pluginFound, redirectURL, redirectIfFound); | |
| } | |
| function detectWindowsMedia(redirectURL, redirectIfFound) { | |
| pluginFound = detectPlugin('Windows Media'); | |
| // if not found, try to detect with VisualBasic | |
| if(!pluginFound && detectableWithVB) { | |
| pluginFound = detectActiveXControl('MediaPlayer.MediaPlayer.1'); | |
| } | |
| return redirectCheck(pluginFound, redirectURL, redirectIfFound); | |
| } | |
| function detectPlugin() { | |
| // allow for multiple checks in a single pass | |
| var daPlugins = detectPlugin.arguments; | |
| // consider pluginFound to be false until proven true | |
| var pluginFound = false; | |
| // if plugins array is there and not fake | |
| if (navigator.plugins && navigator.plugins.length > 0) { | |
| var pluginsArrayLength = navigator.plugins.length; | |
| // for each plugin... | |
| for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) { | |
| // loop through all desired names and check each against the current plugin name | |
| var numFound = 0; | |
| for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) { | |
| // if desired plugin name is found in either plugin name or description | |
| if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) || | |
| (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) { | |
| // this name was found | |
| numFound++; | |
| } | |
| } | |
| // now that we have checked all the required names against this one plugin, | |
| // if the number we found matches the total number provided then we were successful | |
| if(numFound == daPlugins.length) { | |
| pluginFound = true; | |
| // if we've found the plugin, we can stop looking through at the rest of the plugins | |
| break; | |
| } | |
| } | |
| } | |
| return pluginFound; | |
| } // detectPlugin | |
| // Here we write out the VBScript block for MSIE Windows | |
| if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) { | |
| document.writeln('<script language="VBscript">'); | |
| document.writeln('/'do a one-time test for a version of VBScript that can handle this code'); | |
| document.writeln('detectableWithVB = False'); | |
| document.writeln('If ScriptEngineMajorVersion >= 2 then'); | |
| document.writeln(' detectableWithVB = True'); | |
| document.writeln('End If'); | |
| document.writeln('/'this next function will detect most plugins'); | |
| document.writeln('Function detectActiveXControl(activeXControlName)'); | |
| document.writeln(' on error resume next'); | |
| document.writeln(' detectActiveXControl = False'); | |
| document.writeln(' If detectableWithVB Then'); | |
| document.writeln(' detectActiveXControl = IsObject(CreateObject(activeXControlName))'); | |
| document.writeln(' End If'); | |
| document.writeln('End Function'); | |
| document.writeln('/'and the following function handles QuickTime'); | |
| document.writeln('Function detectQuickTimeActiveXControl()'); | |
| document.writeln(' on error resume next'); | |
| document.writeln(' detectQuickTimeActiveXControl = False'); | |
| document.writeln(' If detectableWithVB Then'); | |
| document.writeln(' detectQuickTimeActiveXControl = False'); | |
| document.writeln(' hasQuickTimeChecker = false'); | |
| document.writeln(' Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")'); | |
| document.writeln(' If IsObject(hasQuickTimeChecker) Then'); | |
| document.writeln(' If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then '); | |
| document.writeln(' detectQuickTimeActiveXControl = True'); | |
| document.writeln(' End If'); | |
| document.writeln(' End If'); | |
| document.writeln(' End If'); | |
| document.writeln('End Function'); | |
| document.writeln('</scr' + 'ipt>'); | |
| } | |
| // --> | |
| </script> | |
| </head> | |
| <body> | |
| <script language="JavaScript"> | |
| document.write('<br><b>Can Detect Plugins:</b> ' + canDetectPlugins() + '<br><br>'); | |
| if(canDetectPlugins()) { | |
| document.write('<b>Supports Shockwave for Director:</b> ' + detectDirector() + '<br>' + | |
| '<b>Supports Shockwave Flash:</b> ' + detectFlash() + '<br>' + | |
| '<b>Supports QuickTime:</b> ' + detectQuickTime() + '<br>' + | |
| '<b>Supports RealPlayer:</b> ' + detectReal() + '<br>' + | |
| '<b>Supports Windows Media Player:</b> ' + detectWindowsMedia()); | |
| } | |
| </script> | |
| <noscript> | |
| Your browser doesn't support JavaScript, so we can't check for plugins. | |
| </noscript> | |
| </body> | |
| </html> |
检测Flash,QuickTime,RealPlayer,Windows Media Player插件是否安装
最新推荐文章于 2026-06-23 20:04:53 发布
本文提供了一种使用JavaScript来检测浏览器是否支持特定插件的方法,包括Shockwave Flash、QuickTime等。通过内置的函数,可以判断当前浏览器环境是否安装了所需的多媒体插件。
998

被折叠的 条评论
为什么被折叠?



