【发布时间】:2014-03-26 12:56:32
【问题描述】:
我遇到了一个非常烦人的错误,导致我在this page 上出现问题,但仅在 Mac 上的 Safari 6.1 上。我正在使用 videojs 库进行视频检测并在旧浏览器上回退到 Flash。 videojs 库在初始化时为每个视频添加一个播放按钮到 DOM,您可以单击该按钮开始播放视频。它还有助于根据状态将 vjs-paused 和 vjs-playing 添加到视频容器中,我正在使用它们在视频播放时隐藏播放按钮。
在除 Safari 6.1 之外的所有其他浏览器上,这都可以正常工作,但在此浏览器中,第一个视频播放正常,但页面上的任何后续视频在开始时仍会在视频顶部显示播放按钮,这非常难看。最烦人的是,如果我打开开发工具并取消勾选显示:无样式然后重新勾选它,它突然就可以正常工作了。这就像给浏览器一戳,它突然意识到“嘿,我不应该显示这个我最好快点隐藏它”。
如果有人能就造成这种情况的原因向我提供任何指示,我将不胜感激,因为我正疯狂地试图弄清楚。
谢谢
编辑: 终于想通了,以为我会在这里留下答案,以防有人遇到与我相同的问题。当 videojs 脚本的多个实例加载到页面上时,就会发生这种情况。他们最终会互相冲突。希望这可以帮助任何有同样问题的人。谢谢你们的回复。
【问题讨论】:
-
我一直在做更多的调查,如果我像暂停/播放/结束一样取出所有的 videojs 事件处理程序,那么错误仍然会发生,并且它只会发生在超过 1 个的地方页面上的视频。 Here is a simplified version of the page 进行测试。
-
对不起,伙计,我用 Safari 7.0.2 检测了它,它也在那里。所以它比你更广泛,它也在最新的 safari 上。这一定是他们在 display: none 中添加的方式,因为在我的 Safari 中,我什至无法用检查器触发它,尽管样式确实显示了它,但计算值完全忽略了它。我会更多地研究它,但你所有的代码都被缩小了。不幸的是,在这一点上我能给你的最好的建议就是简单地把它作为一个错误报告给 videojs 库开发者。
标签: javascript video safari html5-video