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