3

我正在尝试为将播放在线广播的 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>

知道我在做什么错吗?甚至可能吗?如果不是,为什么?

谢谢你。

4

1 回答 1

0

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

旁注:

  • 您应该在面板上添加type="content"属性。否则你让它访问浏览器的 chrome,已经像top.location = "http://google.com/"该框架内的代码将是致命的。
  • 您应该src在面板打开时动态设置框架的属性,并在面板关闭时再次将其删除。由于框架在浏览器窗口内,它会在它第一次变得可见时加载 - 并且在浏览器窗口关闭之前它不会卸载。因此,即使面板已经关闭,音乐也会继续播放。
于 2012-05-02T13:24:23.173 回答