以下javascript代码将通知所有浏览器启用的插件(是的,我知道它在IE上不起作用,但对于IE,总是有deployJava):
if ((navigator.plugins) && (navigator.plugins.length)) {
for (var bb = 0, l = navigator.plugins.length; bb < l; bb++) {
var vv = navigator.plugins[bb].name + "<br>";
document.write(vv);
}
}
我安装了Java 6.22,因此写入页面的相关行是这样的:
Java(TM)Platform SE 6 U22
我的问题是:我如何补充上述代码,以便返回我(或任何人)浏览器中的主要版本(6)和更新(22)?
我认为最好的方法是使用正则表达式,但我对它不好。
答案 0 :(得分:0)
我认为最简单的(阅读:最黑客)解决方案是这样的:
var plugin_name = navigator.plugins[bb].name
if (plugin_name.toLowerCase().indexOf("java") != -1) {
var parts = plugin_name.split(" ").reverse();
// if the plugin has an update
if(plugin_name.match(/U[0-9]+/)) {
// grab the end of the plugin name and remove non numeric chars
var update = parts[0].replace(/[^0-9]/, "");
// grab the major version and remove non numeric chars
var major = parts[1].replace(/[^0-9]/, "");
// print the major number and update number
console.log(major);
console.log(update);
} else {
var update = "0";
// grab the major version and remove non numeric chars
var major = parts[0].replace(/[^0-9]/, "");
// print the major number and update number
console.log(major);
console.log(update);
}
}
然后,您可以通过插件将此代码放入循环中,并使用适当的逻辑替换console.log
给定主要和更新编号。