【问题标题】:Strange Lightbox / iframe / Java applet issue on FirefoxFirefox 上奇怪的 Lightbox / iframe / Java 小程序问题
【发布时间】:2010-01-14 16:47:50
【问题描述】:

我正在使用在 Firefox 灯箱内显示的 iframe 中运行的 java 小程序组合来解决奇怪的问题。

当页面直接显示时,对小程序的 javascript 调用

document.appletname.send

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

Error: document.appletname.send is not a function

这只发生在 Windows 的 Firefox 上。 IE、Safari 和 Chrome 都很好,Ubuntu 上的 Firefox 也很好

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

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

添加:回答问题。 lightbox中被调用的页面很简单,就是这个

<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 代码进行检查,它只报告页面中的一个小程序 - 因此该小程序不能在它嵌入的页面内被加载两次。

【问题讨论】:

  • 我在那里,希望 Highland Laddie 的 360° 旋转功能最终能够为永恒的问题提供一些解决方案。可悲的是,我很失望。 :)
  • @Cruachan:开个玩笑。该网站很棒,尤其是 3d 功能。从来没有见过这样的东西。
  • 我的长期客户,尽管或者更确切地说,由于主题(有历史、地理和古代武器设计背景的零售商并不多),但他们倾向于开发有趣的东西)。 Wirefusion 很棒,但是您需要组装才能使用它的软件很昂贵,而且我只触及了它全部潜力的一小部分。

标签: firefox iframe applet lightbox


【解决方案1】:

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

如果小程序不在 IFRAME 中,我猜 Lightbox 会复制小程序,并且所有后续对 document.appletname 的调用都必须失败。但是,如果 Java Applet 嵌入到 IFRAME 中,我看不出这是怎么发生的。您是否可能从 IFrame 外部引用 Applet?可以显示参考代码吗?

【讨论】:

  • 不从外部引用 - 我已将 lightwindow 调用的完整代码添加到问题中。
  • 嗯。然后我推测这可能是一个加载问题。该错误出现在 Applet 显示之前。您可以尝试延迟与 highlandladdie 对象的任何通信,直到文档完全加载?
  • 啊,是的。如果我修改启动器 javascript(来自 Wirefusion 的第 3 方)以将其更改为直接将小程序代码写入缓存到字符串,然后在加载后将其分配给 div innerHTML,那么它在 Firefox 中可以正常工作。当然它会在 IE 中破坏它,但这可以通过旋转一些浏览器特定的代码来处理。奇怪的是,小程序在 Firefox 中似乎仍然启动了两次,但它可以工作。
猜你喜欢
  • 2013-03-19
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多