为什么没有显示XUL弹出窗口中的iframe?

时间:2012-05-02 11:08:06

标签: iframe firefox-addon xul

我正在尝试为将要播放在线广播的Firefox创建插件。我需要用无线电播放器显示一个iframe。

当我将它直接放入XUL文档时,一切都很好。 iframe已加载并显示:

<iframe src="http://player.radiocafe.centrum.cz/back90s/" width="300" height="400" />

但是当我尝试将其放入弹出窗口时,iframe被加载(它需要空间,收音机正在播放,我可以通过JavaScript操纵iframe等),但它的内容不显示:

<toolbarbutton label="Radio test" class="ch-styled" popup="ch-radioTest" />
<panel id="ch-radioTest" position="after_start">
    <iframe src="http://player.radiocafe.centrum.cz/back90s/" width="300" height="400" />
</panel>

知道我做错了什么吗?它甚至可能吗?如果没有,为什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

实际上,框架显示正常 - 如果你把它扩大,你会看到正在显示的网页。仅仅是无线电播放器(它是一个Flash对象)是不可见的。这看起来像一个平台限制/错误 - 我猜Gecko无法正确确定插件应该绘制的区域。您可以在Bugzilla上提交有关该问题的错误,但我认为这个机会相当渺茫。您更有可能必须为此找到解决方法(例如使用无边框对话窗口而不是面板)。

侧面说明:

  • 您应在面板上添加type="content"属性。否则,您可以访问浏览器的chrome,在该框架内已经有类似top.location = "http://google.com/"的代码,这将是致命的。
  • 您应该在面板打开时动态设置框架的src属性,并在关闭时再次将其删除。由于框架位于浏览器窗口内部,因此它将在首次显示时加载 - 并且在浏览器窗口关闭之前不会卸载。因此即使面板已经关闭,音乐也会继续播放。