Ответ 1
Проверьте код в Java Deployment Toolkit.
Существует ли надежный способ определения того, какая версия Java установлена на клиентской машине с помощью JavaScript?
Проверьте код в Java Deployment Toolkit.
В соответствии с тем, что мы находим эту страницу с 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
Это лучший способ найти версию Java с JavaScript, но использовать ее тщательно, потому что ее обнаружение версии действительно зависит от ОС/браузера, а в старой версии браузера или в последнем браузере с установленной старой Java это будет не работает должным образом. Потратьте время на настоящие тесты, прежде чем использовать его в производстве.
Googling для
detect "java version" using javascript
дает несколько результатов, этот выглядит так, как будто это может быть полезно. По сути, он пытается загрузить Java-апплет, а затем JavaScript запрашивает апплет.
Вы можете использовать библиотеку PluginDetect здесь: http://www.pinlady.net/PluginDetect/
Версия 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.
Логика обнаружения не работает в IE32 на Windows7-64. Он не смог обнаружить ранее установленную версию java.
Ну, после дальнейшего чтения, Java Deployment Toolkit в Windows использует ActiveX classid, который может помещать ваше приложение в хакеров (см. http://www.kb.cert.org/vuls/id/886582), Я вышел.
Если вы используете Google Analytics, этот пост может быть полезен (см. для более подробной информации).
Я нахожу, что решение JavaScript, предоставленное Java Deployment Toolkit, дает ошибку... "deployJava.do_initialize не является функцией".
Одним из решений, которое я использовал много лет, которое работает во всех браузерах, является Apple Display Display Applet. К сожалению, исходный авторский сайт, похоже, исчез, но здесь вы можете скачать копию Java Display Display Applet.