问题描述:
    偶现在编写了一个java applet程序,用页面打开后,本地需要安装jre才能正常运行。偶现在需要用javascript实现打开页面后,能够检测到本地是否安装了jre,如果没有,提示用户下载,并给一个下载地址。
    请大家帮帮忙!
    多谢各位!

解决方案 »

  1.   

       在网页上嵌套Applet,客户端要浏览就必须按照JRE,我们可以通过 JavaScript 和 Applet 判断 JRE 的版本,并要求客户端去下载最新的JRE。1. 在网页中嵌套Applet。<APPLET CODE = "DetectPluginApplet" WIDTH = "0" HEIGHT = "0" NAME = "myApplet">
    </APPLET>
    通过HtmlConverter.exe 把上面的代码转换为:<object
        classid = "clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"
        codebase = "http://java.sun.com/update/1.6.0/jinstall-1_6_0-windows-i586.cab#Version=6,0,0,86"
        WIDTH = "0" HEIGHT = "0" NAME = "myApplet" >
        <PARAM NAME = CODE VALUE = "DetectPluginApplet" >
        <PARAM NAME = NAME VALUE = "myApplet" >
        <param name = "type" value = "application/x-java-applet;jpi-version=1.6">
        <param name = "scriptable" value = "false">    <comment>
        <embed
                type = "application/x-java-applet;jpi-version=1.6" \
                CODE = "DetectPluginApplet" \
                NAME = "myApplet" \
                WIDTH = "0" \
                HEIGHT = "0"
            scriptable = false
            pluginspage = "http://java.sun.com/products/plugin/index.html#download">
            <noembed>
                
                </noembed>
        </embed>
        </comment>
    </object>要注意的是由于我使用的是javac 1.6.0-beta2,存在一个bug,也就是通过HtmlConverter转换的codebase 的地址不存在,我们要手动修改。
    codebase = "http://java.sun.com/update/1.6.0/jinstall-1_6_0-windows-i586.cab#Version=6,0,0,86"  为
    codebase = "http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab"你要是其他版本的可以参考:http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/autodl-files.html2. javaScript 调用 applet 
    document.myApplet; 就可以javaScript 调用 applet 3. applet.htm<HTML>
        <HEAD>
            <!-- Generated by Kawa IDE -->
            <TITLE>Detect Java Runtime</TITLE>
        </HEAD>    <SCRIPT LANGUAGE="JavaScript"> 
            var browsername;
            function doNetscape()
            {
                for (i=0; i < navigator.plugins.length; i++)
                {
                    for (j = 0; j < navigator.plugins.length; j++)
                    {
                        if(navigator.plugins[j].type == "application/x-java-applet;version=1.6")
                        {
                            alert("You are running Netscape with Java Plugin 1.6.0 - OK");
                            return;
                        };
                    }
                }            alert("You are running Netscape\nPlease, install Java Runtime Environment 1.6.0");
            }        function doMicrosoft()
            {            var applet = document.myApplet;
                if(applet == null)
                {
                    alert("You are running Microsoft Browser.\nPlease, install Java Runtime Environment 1.6.0");
                    return;
                };            var version = applet.getJavaVersion();
                if(version == "1.6.0")
                {
                    alert("You are running IE, Java Plugin 1.6.0 installed - OK");
                }
                else
                {
                    alert("You are running IE, other plugin installed - mybe OK if later that 1.6.0\nYour version: " + version);
                };
            }        function getJava()
            {
                var applet = document.myApplet;
                if(applet == null)
                {
                    alert("Please, install Java Runtime Environment");
                    return;
                };            alert("JRE Version: " + document.myApplet.getJavaVersion());
            }        function checkJavaPlugin()
            {
                browsername = navigator.appName;            if(browsername.indexOf("Netscape")!= -1) 
                { 
                    browsername="NS";
                    doNetscape();
                }
                else
                {
                    if(browsername.indexOf("Microsoft")!=-1) 
                    {
                        browsername="MSIE";
                        doMicrosoft();
                    }
                    else 
                    {
                        browsername="N/A";
                        alert("Unknown browser: " + browsername);
                    }
                };
            }    </SCRIPT>     <body>        <Strong>Check Java Plugin</strong>
            <object id="myApplet" 
                classid = "clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"
                codebase = "http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab"
                WIDTH = "0" HEIGHT = "0" NAME = "myApplet" >
                <PARAM NAME = CODE VALUE = "DetectPluginApplet" >            <PARAM NAME = NAME VALUE = "myApplet" >
                <param name = "type" value = "application/x-java-applet;jpi-version=1.6">
                <param name = "scriptable" value = "false">            <comment>
                <embed
                type = "application/x-java-applet;jpi-version=1.6" \
                CODE = "DetectPluginApplet" \
                NAME = "myApplet" \
                WIDTH = "400" \
                HEIGHT = "320"
                scriptable = false
                pluginspage = "http://java.sun.com/products/plugin/index.html#download">
                <noembed>            </noembed>
                </embed>
                </comment>
            </object>        <FORM>
                <INPUT TYPE="button" value="Get Plugin Version in IE" onClick="getJava()">
                <INPUT TYPE="button" value="Check Java Plugin in NS and IE" onClick="javascript:checkJavaPlugin()">
            </FORM>    </BODY>
    </HTML>4. DetectPluginApplet.javaimport java.awt.*;
    public class DetectPluginApplet extends java.applet.Applet
    {
        public void init()
        {
            add(new Label("DetectPluginApplet"));
        }
        public String getJavaVersion()
        {
            return System.getProperty("java.version");
        }