确定客户端浏览器是否已安装Java并可以启动applet

6 java firefox applet navigator

我正在开发一个.aspx页面,在用户点击一个按钮后我将最终启动一个applet(我正在使用该<applet>标签).所以,我想检测是否在用户的浏览器上启用/安装了java.

我正在使用navigator.javaEnabled()方法.然而,即使这在IE7上工作正常,它在Firefox 3.0.12上返回不一致的结果(不知道不同的浏览器),有时说java已启用(它是),然后在启动applet后再次从applet返回到此页面,它将报告错误.如果我关闭firefox并返回applet启动页面,navigator.javaEnabled()将再次(正确)报告true.

有什么东西可以确定这种不一致的行为,或者navigator.javaEnabled()不是进行Java applet检查的最佳方法吗?

提前致谢.

Mar*_*cin 10

在applet中创建一个方法

public boolean isRunning() { return true; }
Run Code Online (Sandbox Code Playgroud)

现在创建一个applet:

<applet src=".../yourapplet.jar" id="someId">
Run Code Online (Sandbox Code Playgroud)

现在将此代码包装在一些辅助函数中

try {
  var x = document.getElementById('someId').isRunning()
  return x;
} catch(e) {
  return false;
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如果applet运行,它将返回true.如果applet没有运行或者Java不受支持,你将获得异常,所以你会得到错误.