检测浏览器是否能成功加载Java小程序-Firefox上的意外行为

检测浏览器是否能成功加载Java小程序-Firefox上的意外行为,java,asp.net,firefox,applet,version,Java,Asp.net,Firefox,Applet,Version,我有一个加载Java小程序的ASP.NET页面。我首先检查客户端计算机是否能够运行applet(Java版本等),方法是给标记一个ID“AppletID”-然后调用该applet的一个函数,该函数始终返回“true” <script type="text/javascript" language="javascript"> window.onload = function() { var appletCheck = checkAppletRunning

我有一个加载Java小程序的ASP.NET页面。我首先检查客户端计算机是否能够运行applet(Java版本等),方法是给标记一个ID“AppletID”-然后调用该applet的一个函数,该函数始终返回“true”

<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>
因此,以下代码行:var isRunning=document.getElementById('AppletID')。如果成功调用小程序中的方法“appletRunning”(表示客户端可以正确加载小程序),则appletRunning()将返回“true”

<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>
直到最近,这种方法一直有效。然而,最近,Firefox浏览器给了我一个交互式对话框,显示“您没有所需的Java最低版本…”消息。(其他情况下,它会正确检测到小程序可以加载)。然后小程序继续正确加载,但首先不应显示对话框。我想知道为什么会发生这种情况-可能是该文档。检查getElementById('AppletID')时,它是空的,因此导致“checkAppletRunning”方法的“catch”部分?IE始终正常,从不返回此对话框

<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>
下面是.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>

<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>

window.onload=函数()
{
var appletCheck=checkAppletRunning();
如果(appletCheck==1)
{
警报(“服务器已关闭…请稍后再试。”);
window.location.href=“Default.htm”;
}
否则如果(appletCheck==2)
{
警报(“您没有启用或安装所需的Java最低版本。必须从以下位置启用或下载Java:http://www.java.com");
window.location.href=“Default.htm”;
}
}
函数checkAppletRunning()
{
var-OK=0;
var-serverDown=1;
var appletNotSupported=2;
尝试
{
var isRunning=document.getElementById('AppletID').appletRunning();
如果(正在运行)
{
返回OK;
}
其他的
{
返回appletNotSupported;
}
} 
捕获(e)
{
返回appletNotSupported;
}
}

<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>
我非常感谢你在这件事上的帮助

<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>
提前感谢,,
Timothy可能是因为小程序尚未完成启动

<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>

尝试为异常返回不同的结果(或记录异常),以更好地了解其失败的原因。

更简单的方法是,如果Java不可用,则不会解释小程序标记

<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>
<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>


您好,谢谢您的回复。我已经创建了该页面的另一个版本,以便在“var isRunning=document.getElementById('AppletID').appletRunning();”之前打印document.getElementById('AppletID')的值。我注意到,当检测到Java时,警报显示小程序的entry类的实例。单击“运行”取消Java对话框后,将显示此警报。但是,当Java未被检测到时,在Java对话框出现之前,警报将显示[object HTMLAppletElement]。所以,我认为Java还没有启动?有什么想法吗?谢谢您可以使用的一种方法是让Javaapplet调用javascript。需要javascript端的计时器告诉它停止等待小程序调用(即未安装java)