【问题标题】:detect java not installed and provide a link from Javascript检测未安装 java 并提供来自 Javascript 的链接
【发布时间】:2012-02-14 08:42:35
【问题描述】:

我有这个使用java的全景查看器,

但是当尝试从未安装的 firefox 和 java 访问时,它会警告说需要一些插件,但它没有指定哪个插件或从哪里下载...

那么,我可以从 javascript 中检测用户是否没有安装 java 并为他提供下载链接吗?

【问题讨论】:

标签: java javascript jquery


【解决方案1】:

使用Deployjava.js测试java是否安装:

示例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Deploy Java Test </TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript" src="deployJava.js">
</SCRIPT>
<script type="text/javascript">
function call()
{
    if (deployJava.versionCheck("1.6.0+") || deployJava.versionCheck("1.4") ||    deployJava.versionCheck("1.5.0*")) 
    {
        alert("Java is Enabled");
    } else 
    {
        alert("Java is Not Enabled");
    }
}
</script>
<BODY onload="call();">
</BODY>
</HTML>

工作示例:

http://jsfiddle.net/ym78z/

希望对你有帮助:-)

【讨论】:

    【解决方案2】:

    您应该查看Java Deployment Toolkit

     * deployJava.js
     *
     * This file is part of the Deployment Toolkit.  It provides functions for web
     * pages to detect the presence of a JRE, install the latest JRE, and easily run
     * applets or Web Start programs. 
    

    【讨论】:

      【解决方案3】:

      检测小程序是否准备就绪

          <SCRIPT>
          function isAppletReady(a) {
             return a.isActive();
             } 
          </SCRIPT>
      
          <FORM>
          <INPUT TYPE=button 
             VALUE="Check applet" 
             onClick="if (!isAppletReady(document.applets[0])) alert("not ready");">
          </FORM>
      

      仅在 Applet 准备就绪时执行 Javascript:

      <SCRIPT>
      function waituntilok() {
         if (document.myApplet.isActive()) {
               doit();
               }
         else {
             settimeout(waituntilok(),5000)
             }
         }
      
      function doit() {
          ....
          }
      </SCRIPT>
      ...
      <BODY onLoad="waituntilok();">
      

      解决方案如下:

      <HTML>
      <HEAD>
      <SCRIPT LANGUAGE="JavaScript">
      
      onError = errHandler;  
        // Without he parentheses, because we don't want IE
        // to do this. Like this, only NS does.
      
      function appLoaded() {
       if (!document.applets[0].isActive)
          // in IE: isActive returns an error if the applet IS loaded, 
          // false if not loaded
          // in NS: isActive returns true if loaded, an error if not loaded, 
          // so never reaches the next statement
          alert("IE: Applet could not be loaded");
          }
      
      function errHandler() {
       alert("NS: Applet could not be loaded");
       consume();
       // stops further processing of the error
       }
      
      </SCRIPT>
      </HEAD>
      
      <BODY onLoad = appLoaded();>
      <APPLET code=someClass.class
      codeBase=someURL height=50 width=300><PARAM NAME="bgcolor" VALUE="FFFFFF">
      </APPLET>
      </BODY>
      </HTML>
      ....
      
      </BODY>
      

      希望这对你有用!!

      【讨论】:

        猜你喜欢
        • 2019-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多