【发布时间】:2012-01-23 14:30:27
【问题描述】:
我有这个 HTML5 的 sn-p,它允许用户单击并播放一些音频:
<audio controls>
<source src="cell.ogg">
<source src="cell.mp3">
<source src="cell.m4a">
</audio>
这在 OS X Lion 上的 FF 8 中运行良好。音频播放器控件出现,我可以点击播放,它播放的是ogg版本。
但是,如果我将包含文件放在另一个 HTML5 文档的 iframe 中(都来自本地文件系统;没有跨域问题),那么它就不起作用。 HTML 的其余部分显示正常,但 Firefox 表现得好像它不支持任何媒体格式。
这是我用来将页面添加到 iframe 的函数:
function postContentToIframe(content)
{
var iframe = $("#displayContents")[0].contentWindow.document;
iframe.open(); iframe.close(); // must open and close document object to start using it!
$("body", iframe).append(content).hide().fadeIn("slow");
return;
}
这是 FF 的渲染方式。
为什么?我该如何解决? TIA。
【问题讨论】:
-
新信息:在 Apache 上托管文件(因为 Chrome 存在与本地文件的跨域问题)。用 Chrome 16 测试。同样的问题!音频在呈现为它自己的页面时播放,但在 iframe 中时不播放。很奇怪。
-
我想知道这是否是与安全相关的问题。您是否在控制台中收到任何错误报告?
-
我正在做一些日志记录,它显示在控制台中,但在 FF 或 Chrome 中没有错误。
-
新信息:如果我删除 JS 函数并在 iframe () 中手动添加源,音频可以正常工作。所以,问题一定出在 JS 函数是如何添加内容的。想法?
标签: javascript html firefox audio iframe