是否有可靠的方法使用JavaScript检测客户端计算机上安装的Java版本?
答案 0 :(得分:12)
答案 1 :(得分:12)
根据我们在google上找到这个页面的事实,只是为了帮助下一个人找到这个。
navigator.javaEnabled()
http://www.w3schools.com/jsref/met_nav_javaenabled.asp
<script src="http://www.java.com/js/deployJava.js"></script>
<script>
var versions = deployJava.getJREs();
</script>
http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit
这是我发现使用JavaScript找到Java版本的最好方法,但是请仔细使用它,因为它的版本检测确实取决于浏览器/浏览器,并且在旧的浏览器版本或安装旧Java的最新浏览器上,它会不按预期工作。在生产中使用它之前,请花时间进行实际测试。
答案 2 :(得分:5)
谷歌搜索
detect "java version" using javascript
产生了几个结果,this one看起来可能有用。本质上,它尝试加载Java小程序,然后JavaScript询问小程序。
答案 3 :(得分:4)
您可以从此处使用PluginDetect库: http://www.pinlady.net/PluginDetect/
答案 4 :(得分:4)
Java版本:
/** * @return NULL if not version found. Else return some things like: '1.6.0_31' */ var JavaVersion: function() { var result = null; // Walk through the full list of mime types. for( var i=0,size=navigator.mimeTypes.length; i<size; i++ ) { // The jpi-version is the plug-in version. This is the best // version to use. if( (result = navigator.mimeTypes[i].type.match(/^application\/x-java-applet;jpi-version=(.*)$/)) !== null ) return result[1]; } return null; }
是Java并且是Java启用:
var IsJava: function() { return typeof(navigator.javaEnabled) !== 'undefined' && navigator.javaEnabled(); }
这些功能适用于Opera,Firefox,Chrome。我没有IE。
答案 5 :(得分:1)
检测逻辑在Windows7-64上的IE32中不起作用。它无法检测到之前安装的java版本。
嗯,在进一步阅读之后,Windows上的Java Deployment Toolkit使用ActiveX classid,这可能会使您的应用程序成为黑客(请参阅http://www.kb.cert.org/vuls/id/886582)。我出去了。
答案 6 :(得分:0)
如果您使用Google Analytics,this post可能会有所帮助(有关详情,请参阅forum thread)。
答案 7 :(得分:0)
我发现Java Deployment Toolkit提供的JavaScript解决方案会出错...“deployJava.do_initialize不是函数”。
我在所有浏览器中广泛使用多年的一个解决方案是 Java版本显示小程序。不幸的是,原作者的网站似乎已经消失,但你可以在这里下载Java Version Display Applet的副本。