2010-01-14 68 views
0

我正在使用运行在Firefox中的Lightbox中显示的iframe上的Java小程序的组合来打击我的头部以应对奇怪的问题。Firefox上的奇怪灯箱/ iframe/Java小程序问题

当页面直接显示JavaScript调用的小程序

document.appletname.send 

功能完美,从lighbox(实际上lightwindow)则返回错误

Error: document.appletname.send is not a function 

这里面叫然而,当仅在Windows中出现在Firefox中。 IE,Safari和Chrome都很好,因为是火狐在Ubuntu

有关信息的小应用程序是一个Wirefusion 3D演示,你可以看到通过收藏盒通过,或直接在page containing the lightbox点击Highland Laddie 3D at the bottom of the page运行小程序。

我试过添加javascript诊断代码来检查applet是否存在并且有正确的名称(它确实)。我能看到的唯一奇怪的事情是,在Firefox中,小程序似乎开始加载两次。

ADDED:回答一个问题。所谓的收藏夹页是很简单的,只是这

<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

在那里,我希望高地Laddie的360°旋转功能最终能够提供一些关于*永恒问题*的结论。可悲的是,我很失望。 :) – 2010-01-14 17:03:01

+0

这只是伤心 – Cruachan 2010-01-14 17:15:15

+0

@Cruachan:只是在开玩笑。该网站是伟大的,特别是3d功能。从来没有见过这样的事情。我的 – 2010-01-14 17:22:04

回答

0

Lightbox和克隆有时会因为移动而产生麻烦(或者在最糟糕的情况下,将DOM元素从其上下文中复制到Lightbox容器中。这可能会导致IFRAME被加载两次。

如果小程序不在IFRAME中,我猜测灯箱会复制该小程序,并且所有后续调用document.appletname都必须失败。但是,如果Java Applet嵌入到IFRAME中,我看不到会发生这种情况。你是否可能从IFrame外引用Applet?你能显示引用代码吗?

+0

不从外部引用 - 我已将lightwindow调用的完整代码添加到问题中。 – Cruachan 2010-01-14 17:15:58

+0

嗯。然后我会推测这可能是一个加载问题。在Applet显示之前,错误就会出现。你能否尝试延迟与'highlandladdie'对象的任何通信,直到文档完全加载? – 2010-01-14 17:27:28

+0

啊是的。如果我修改启动器javascript(来自Wirefusion的第三方),将它从直接写入applet代码缓存到字符串,然后在加载后将其分配给div innerHTML,然后在Firefox中正常工作。当然,它会在IE中打破它,但可以通过旋转某些浏览器特定的代码来处理。奇怪的是,applet仍然在firefox中启动两次,但它很有效。 – Cruachan 2010-01-14 18:00:19