在加载页面的其余部分之前,我有一些java脚本来检查applet是否已完成加载。它已经工作了多年,现在似乎在Firefox 16和IE 7中都失败了。它适用于IE 8
有关它为什么会破碎以及可能解决的原因的任何建议?
<applet name="env" archive="portal-applet-envir.jar" code="com/deleted/AppletEnvironment.class" height="1" mayscript="true" width="1">
</applet>
<table width="98%" align="center"><tr><td>
<script language="javascript">
function waituntilok() {
if (document.env.isActive()) {
doit();
}
else {
var ct = 0;
while (! document.env.isActive())
{
}
doit();
}
}
[....]
waituntilok();
</script>
</td></tr></table>
答案 0 :(得分:1)
在初始化applet之前调用document.env.isActive()
时,FF会注册“无此方法”错误并退出该函数。在调试这些东西时检查错误控制台是值得的。
同样可疑的是1x1的applet大小。有一些旨在保护用户的工具可以删除“可疑的小”HTML元素。
此版本适用于FF。在IE和IE中试用它FF并报告回来。
<html>
<body>
<applet
name="env"
archive="http://pscode.org/lib/mime.jar"
code="org.pscode.mime.MimeType"
height="100"
mayscript="true"
width="600">
</applet>
<table width="98%" align="center">
<tr>
<td>
<script language="javascript">
function waituntilok() {
if (document) {
alert('document');
}
if (document.env) {
alert('document.env');
}
if (document.env.isActive()) {
doit();
} else {
var ct = 0;
while (! document.env.isActive())
{
}
doit();
}
}
function doit() {
alert('Just Do It!');
}
setTimeout('waituntilok()', 15000);
</script>
</td>
</tr>
</table>
</body>
</html>