我曾经认为是隐藏在半复杂的Web应用程序中的一个bug,但我已将其简化为可能的最简代码,并且仍然可以在Firefox、Chrome和Safari中不可预测地重现,但超过一半的时间会出现。
我在OS X 10.6.7上。
var v = $("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-piano-360.webm' autobuffer='auto' preload autoplay controls></video>");
$("#player").append(v);
- 添加一个视频元素。
- 视频开始加载和播放。
- 视频音频听起来像是重复了。
- 暂停可见的视频,一个音轨继续播放。
- 删除视频元素;幽灵音频继续播放。
- 删除框架,幽灵音频停止(尽管在Firefox中有时会在关闭窗口后继续播放,并且直到退出Firefox才停止)。
这里有一个屏幕截图,也许可以证明我不是完全疯了:http://www.youtube.com/watch?v=hLYrakKagRY
使用.html()
而不是.append()
制作元素时似乎不会发生这种情况,所以这是我的唯一线索:http://jsfiddle.net/cDpV9/6/
$("#player").html("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-piano-360.webm' autobuffer='auto' preload autoplay controls></video>");
我在OS X 10.6.7上。
我认为我找到了解决方法。即使只是创建JQuery对象而不将其添加到页面中,幽灵播放器也会播放: http://jsfiddle.net/cDpV9/8/
var v = $("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-banjo-360.webm' autobuffer='auto' preload autoplay controls></video>");
目前,我可以通过使用.html()
来解决这个问题。我会向JQuery报告这个问题。
$().append()
改为$().html()
就解决了。 - Sorter