2012-11-15 33 views
0

我有一些java脚本来检查applet是否在加载页面的其余部分之前完成加载。它已经工作了多年,现在似乎在Firefox 16和IE 7中失败。它在IE 8中工作文件。 <applet name> .isAlive()在某些浏览器中失败

有关它为什么会崩溃以及可能会修复它的任何建议?

<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)通过'waituntilok()'的外观,它会循环直到'document.env.isActive()'。它会进入无限循环吗? 2)'code =“com/deleted/AppletEnvironment.class”'应该是'code =“com.deleted.AppletEnvironment”'。 –

+0

当applet最终加载时,循环终止。 代码参数一直工作到最近。我是否依赖于某个功能? – Aaron

+0

不知道。 if(document)'&if(document.env)'的结果是什么?弹出提醒或向页面写入内容。应该'name'是'id'? –

回答

1

当Applet被初始化之前document.env.isActive()被调用时,FF寄存器A“没有这样的方法”的错误并退出功能。在调试这些事情时,检查错误控制台会付出代价。

另外可疑的是1x1的小程序大小。有些工具旨在保护用户,将删除“可疑的小”HTML元素。

此版本在FF中工作。在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> 
+0

我没有看到日志中没有这种方法错误。我应该报告它。 – Aaron

+0

1x1大小是故意的,我正在使用小程序来收集我在javascript函数中使用的一些信息,但用户不应该看到任何东西。 – Aaron

+0

*“1x1大小是故意的”* O_o告诉我一些***不是明显的明显。 –

相关问题