我开发.aspx页,其上的按钮(我使用的<applet>标签)用户点击后最终将启动一个小应用程序。所以,我想如果Java启用/安装在用户的浏览器来检测。

我使用navigator.javaEnabled()方法。然而,尽管这是工作的罚款在IE7,它返回的Firefox 3.0.12不一致的结果(不知道不同的浏览器),有时说Java是启用(它是),然后运行该小程序后再回来了小程序的这个页面时,它会报告错误。如果我关闭Firefox,然后返回到小程序启动页面,navigator.javaEnabled()将再次上报真(正确)。

有没有什么是确定此不一致的行为或navigator.javaEnabled()不要做Java小程序检查的最佳方式?

预先感谢。

有帮助吗?

解决方案

在您的小程序

请方法

public boolean isRunning() { return true; }

现在创建applet:

<applet src=".../yourapplet.jar" id="someId">

和现在在一些辅助功能包裹此代码

try {
  var x = document.getElementById('someId').isRunning()
  return x;
} catch(e) {
  return false;
}

为什么这个工程?如果小程序运行时,它会返回true。如果小程序不运行或不支持的Java,你会得到一个异常,所以你会得到错误的。

其他提示

您也可以尝试使用对象标记。

有了它,你可以决定安装的是什么版本的Java,并提示用户下载它,如果它不存在。

这是从一个应用程序,我的工作所取的样本对象标签,需要我们JRE并发症上1.4.2_03与其他应用程序的兼容性运行。

 <object classid="clsid:CAFEEFAC-0014-0002-0003-ABCDEFFEDCBA" id="MyApplet" 
 name="MyApplet" width="4" height="4" 
 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_2_03-windows-i586.cab#Version=1,4,2,03">

在的classid指定要加载Java版本,你可以将其设置为特定的JRE,特定的家庭即1.4.X或任何最新版本。

其中如果它们不符合什么的classid被设置为将用户定向的代码库的控制。

请注意,如果客户有1.5或更高版本,你不能引用旧的JRE由于安全限制,您可以通过在Windows注册表设置覆盖,但我不会推荐它。

我认为安全是安装,所以你只能在同一家族中引用旧的JRE。 即用户1.6.0.10你可以参考1.6.0.1,但不能去在1.5.X什么 虽然我觉得我记得1.6.0.11后看到一个安全对话框弹出,像以前它只是默认拒绝请求。

我觉得这个lib中拥有最全面的文档和实施,我能找到和工作得很好。

http://www.pinlady.net/PluginDetect/Java/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top