在Javascript中,如何测试用户是否安装了quicktime插件和java插件?测试Quicktime和Java是否安装?
回答
对于Java,您可以使用navigator.javaEnabled()
。或者你可以看看这里:http://www.pinlady.net/PluginDetect/JavaDetect.htm
的QuickTime,你可以这样做:
var QtPlugin = navigator.plugins["Quicktime"];
if (QtPlugin) {//QuickTime is installed}
在这里看到:http://javascript.internet.com/miscellaneous/check-plugins.html
当然,这并不在IE浏览器。在IE中检查插件的唯一方法是使用VB脚本,它非常奇怪和混乱。你只能测试特定的插件版本,例如,“quicktime”不会削减它。您必须指定版本,该版本不会在5以前的版本中发布,并且I can't find a reference for version 7
上述示例没有得到QuickTime问题部分的答案,所以这里是我现在写的内容尽管这个问题已经结束并且有点老了。
var p = navigator.plugins;
var qtcheck = 0;
for (i=0;i<p.length;i++) {
if (p[i].name.match(/QuickTime/) != null) {
qtcheck++
}
}
if (qtcheck > 0) { // do nothing, QuickTime is intalled }
else {
videos = document.querySelectorAll('object[type="video/quicktime"]')
// use .getElementById instead if there are multiple videos
// replace them with document.createElement('img')
对于没有的担心更全面,更简单的方法,即插件被改名不管什么原因,你可以MIME类型的数组type="video/quicktime"
这是该对象是否将支持最终的答案中检查(或者如果你没有使用QT视频,那么你可以使用它来代替)。
这意味着创建通过插件,而不是在循环中循环,而是以更加坚定的验证不仅仅是一个字符串匹配:
function checkQT() {
var p = navigator.plugins;
var QT = false; // assume you don't have it
for (i=0;i<p.length;i++) {
for (j=0;j<p[i].length;j++) {
if (p[i][j].type == "video/quicktime") {
QT = true;
return true;
}
else continue;
return false;
}
}
}
我周围中搜索网上发现了一堆伟大的IE浏览器的回退脚本here (不知道这贴服代码将持续存在,因此我gisted it for posterity),从我把QuickTime的一个:
function IEhasQT() {
if (!window.ActiveXObject) return false;
try { if(new ActiveXObject("QuickTime.QuickTime")) return true; }
catch (e) {}
try { if (new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck')) return true; }
catch (e) {}
return false;
}
我测试了一些人,他们只是没有工作 - 捕获异常是重要的。
如果您正在做我在做的事(QuickTime回退到GIF动画),您可能需要将视频的属性提供给图像(或您正在使用的任何其他设备)。这样做的缺点是你不得不将它连接到onscroll和onload(或者使用Jquery),因为无论你如何尝试和避免它,浏览器都有可能试图在DOM加载之前尝试找到元素。
如果任何人读这是寻找一个类似的答案,将代码这样做是
function noQTfallback() {
var vid1 = document.getElementById("<insert your object id>");
var vid1gif = document.createElement('img');
vid1gif.setAttribute("src","<insert your URL source>");
vid1gif.setAttribute("style",vid1.getAttribute("style"));
document.getElementById("<...>").replaceChild(vid1gif, vid1);
}
function IEhasQT() {
// as above
}
function checkQT() {
// as above
}
function QTbackup(){
if (!checkQT() && !IEhasQT()) {
noQTfallback();
}
}
window.document.body.onload = QTbackup;
window.onscroll = QTbackup;
奇怪的是,你可以有多个版本的安装了QuickTime,Windows上我的Chrome浏览器有7份.. 。幸运的是,我有一个Chromebook,它没有安装Qt插件,也没有可用的插件,所以我正在检查并查看可以区分的QT插件,这是我认为最好的。
我从来没有理解为什么测试是如此重要,直到在网上看到每个人的可怕代码,令人难以置信。我知道没有人关心IE,但像||
而不是&&
这样的基本信息只能让其他开发人员重复使用。
我检查了Windows,Linux和Android(IE和Chrome)上的这个。onscroll
给了一些跳跃,但没有JQuery或其他框架,我猜(不包括“插件不支持”!
- 1. 如何检测quicktime是否安装了javascript?
- 2. 测试字体是否安装(Win32)
- 3. 测试字体是否安装
- 4. 测试jquery.dimensions.js是否正确安装
- 5. 的Android SDK安装卡在“检测是否安装了Java SDK”
- 6. QuickTime Player是否需要通过iTunes安装iOS应用程序?
- 7. PyQT4测试安装
- 8. 测试系统上是否安装了Adobe组件
- 9. 如何测试Adobe AIR是否使用jQuery安装?
- 10. 测试Outlook是否安装了C#异常处理
- 11. 如何测试我的安装程序是否包含文件?
- 12. 测试clisp中是否已经安装了quicklisp
- 13. Excel宏 - 测试是否已安装电源查询Excel插件
- 14. 测试bundle安装是否创建扩展
- 15. 如何测试Notepad ++是否通过PowerShell安装?
- 16. 如何测试我的cakePHP安装是否正常工作?
- 17. 如何测试另一个安装是否正在进行?
- 18. 测试是否安装了Python模块依赖关系
- 19. 测试是否安装了附加sdk firefox扩展
- 20. 测试ActiveX控件是否安装了Javascript?
- 21. 如何测试是否ASP.NET MVC 3.0安装主机
- 22. Java安全测试
- 23. PHP检测是否安装了闪存
- 24. 如何检测WinPcap库是否安装?
- 25. 检测扩展是否安装Crossrider API
- 26. 如何检测是否安装了System.Web.Mvc.dll?
- 27. 检测Adobe Acrobat 9.3+是否已安装
- 28. 检测SQL Server 2008是否安装
- 29. 如何检测SCCM 2012是否安装?
- 30. 检测是否安装了Safari扩展
这不起作用,插件命名与版本号,所以你的代码出现即使安装时也未定义 – 2014-03-27 17:06:31