Firefox上的Strange Lightbox / iframe / Java applet问题

时间:2010-01-14 16:47:51

标签: firefox iframe applet lightbox

我正在使用在Firefox上的灯箱内显示的iframe中运行的java applet的组合来打击奇怪的问题。

当页面直接显示javascript调用applet

document.appletname.send

完美的功能,但是当从lighbox(实际上是lightwindow)内部调用时,则会返回错误

Error: document.appletname.send is not a function

这仅适用于Windows中的Firefox。 IE,Safari和Chrome都很好,就像Ubuntu上的Firefox一样

有关信息,applet是一个Wirefusion 3D演示文稿,您可以通过点击Highland Laddie 3D at the bottom of the page或直接在page containing the lightbox中看到通过灯箱框运行的小程序。

我尝试添加javascript诊断代码来检查applet是否存在且名称是否正确(确实如此)。我能看到的唯一奇怪的事情是,使用Firefox,applet似乎开始加载两次。

增加:回答问题。在灯箱中调用的页面非常简单,只需

<div style="position:absolute; top:0px; left:0px">
<iframe id="mainframe" 
src="http://www.tartanweb.com/laddie/highlandladdie.php" width="730px" height="670px" scrolling="no">
  <p>Your browser does not support iframes.</p>
</iframe>
</div>
<div style="position:absolute; top:15px; left:600px; z-index:1; width:30px;" >
<a href="blank-width.html" class="lightwindow_action" rel="deactivate"><input type="button" value="Close"></a>
</div>

所以只有iframe本身和一个关闭按钮。麻烦的javascript代码是iframe调用的页面。我在iframe中添加了javascript代码进行检查,它只报告了页面中的一个applet - 因此applet无法在其嵌入的页面内加载两次。

1 个答案:

答案 0 :(得分:0)

Lightbox和克隆有时会引起麻烦,因为它们将DOM元素从其上下文移动到Lightbox容器中(或者在最坏的情况下,将其复制)。这可能是因为IFRAME被加载了两次。

如果applet不在IFRAME中,我猜想Lightbox会复制applet,所有后续的document.appletname调用都必须失败。但是,如果Java Applet嵌入在IFRAME中,我无法看到它是如何发生的。您是否可以从IFrame外部引用Applet?你能显示引用代码吗?