我有一个加载Java Applet的ASP.NET页面。我首先检查客户端计算机是否能够通过为标记提供ID“AppletID”来运行applet(Java版本等) - 然后我调用此applet的函数,该函数始终返回“true”。
所以,下面一行代码:var isRunning = document.getElementById('AppletID')。如果applet中的方法“appletRunning”被成功调用,appletRunning()将返回“true”(表示客户端可以加载小程序正确)。
这一直持续到最近。但是,最近,Firefox浏览器给了我一个内部对话框,显示“你没有所需的最低版本的Java ...”消息。 (其他时候它正确检测到可以加载applet)。然后applet继续正确加载,但不应该首先显示对话框。我想知道为什么会发生这种情况 - 可能是document.getElementById('AppletID')在选中时为null,从而导致“checkAppletRunning”方法的“catch”部分? IE总是正常,永远不会返回此对话框。
以下是.aspx页面的代码。
<script type="text/javascript" language="javascript">
window.onload = function()
{
var appletCheck = checkAppletRunning();
if (appletCheck == 1)
{
alert("Server is down...please try again later.");
window.location.href = "Default.htm";
}
else if (appletCheck == 2)
{
alert("You do not have the required minimum version of Java enabled or installed. Java must be enabled or downloaded from http://www.java.com");
window.location.href = "Default.htm";
}
}
function checkAppletRunning()
{
var OK = 0;
var serverDown = 1;
var appletNotSupported = 2;
try
{
var isRunning = document.getElementById('AppletID').appletRunning();
if (isRunning)
{
return OK;
}
else
{
return appletNotSupported;
}
}
catch (e)
{
return appletNotSupported;
}
}
</script>
我很感激这方面的任何帮助,
提前致谢, 蒂莫西
答案 0 :(得分:0)
可能是applet还没有完成启动。
尝试为异常返回不同的结果(或记录异常)以更好地了解其失败的原因。
答案 1 :(得分:0)
更简单的方法是依赖以下事实:如果Java不可用,那么不会解释APPLET标记。
<HTML><HEAD></HEAD><BODY>
<APPLET CODE="MyApplet.class"
NAME="myApplet"
HEIGHT=400 WIDTH=400>
<A HREF="nojava.html">Oups! You don't have JAVA enabled, click here.</A>
</APPLET>
</BODY></HTML>