大家知道在java applet还没有全部加载的时候IE或Netscape会在applet对应的区域显示一块灰色的区域那您有没有想过用其他的方式代替它呢?
本文介绍了如何利用JavaScript 实现在加载java applet时候显示一段消息比如请稍候之类的话该段代码可以在IE和Netscape运行
下面的代码就可以解决这个问题
<html>
<head>
<title>Your Title Here</title>
</head>
<script language=JavaScript>
<! Hide script from old browsers
function init()
{
// Microsoft Internet Explorer
if (documentall)
{
documentallloadingstylevisibility=hidden;
documentallmyappletstylevisibility=visible;
documentapplets[]repaint();
}
// Netscape Navigator
else
{
documentloadingvisibility=hide;
documentmyappletvisibility=visible;
}
}
// >
</script>
<style type=text/css>
#loading {
position:absolute;
left:;
top:;
}
#myapplet {
position:absolute;
left:;
top:;
visibility:hide;
}
</style>
<body onLoad=init()>
<div id=loading>
<p>Please wait while Java applet loads</p>
</div>
<div id=myapplet >
<applet archive=appjar code=appclass align=baseline width= height=>
<p>Requires a browser that supports Java</p>
</applet>
</div>
</body>
</html>
解释
首先让我们来看看我们真正想做的是什么 其实我们只不过希望把下载java程序过程中的不雅观的灰块去掉以一些消息如正在载入请稍候之类的画面盖住原来的灰色区域而一旦java加载完毕马上把该区域恢复为applet可见
上面的javascript代码就是实现了这个目的的一个实例
下面让我来逐条解释一下我们是如何实现的
首先请看以下部分
<div id=loading>
<p>Please wait while Java applet loads</p>
</div>
<div id=myapplet >
<applet archive=appjar code=appclass align=baseline width= height=>
<p>Requires a browser that supports Java</p>
</applet>
</div>
正如您所见到的我用了个层第一个层(id为loading)可以写上一些提示消息而第个层(id为myapplet)在一开始是不可见的当applet下载好了马上把第个层显示出来并把第一个层设为不可见因此只要这个层大小位置必须完全一致就可以实现我们的目标下面是对不同的层的属性描述代码
<style type=text/css>
#loading {
position:absolute;
left:;
top:;
}
#myapplet {
position:absolute;
left:;
top:;
visibility:hide;
}
</style>
好现在我们只差最后一个问题需要解决如何知道applet已经完全下载了呢?在IE和netscape中都有提供documentall这个属性当应页面的全部内容(包括applets图片声音等)已经下载后该属性为真好这样我们只需监测documentall是否为真如果是那就可以把消息所在的层设为不可见而applet所在的层设为可见并刷新applet的显示(因为先前applet的显示被隐藏了)否则则相反处理
这是处理后的代码
<script language=JavaScript>
function init()
{
if (documentall)
{
documentallloadingstylevisibility=hidden;
documentallmyappletstylevisibility=visible;
documentapplets[]repaint();
}
else
{
documentloadingvisibility=hide;
documentmyappletvisibility=visible;
}
}
</script>
大功告成其实用这个办法同样适用于用含有图片盖住applet直到applet开始运行为止如何处理我想聪明的你一定已经知道答案了