我目前正在使用Video JS来提供视频文件,视频源会根据访问者点击的项目而改变。当我的页面加载时,我运行以下代码将videoplayer对象绑定到变量。
var videoPlayer = _V_("my_video_1");
除了IE7和IE8之外,它在每个浏览器中都能很好地工作。我一直在调试我的代码,似乎它被卡在准备好的事件上,它永远不会触发。虽然它不会在控制台中留下任何错误。但是就绪功能中的任何警报或操作都会被忽略,而且正是在这一点上,源正在被修改。这是我用来更改源代码的代码:
videoPlayer.ready(function(){
var myPlayer = this;
myPlayer.src([
{ type: "video/mp4", src: videoFile + ".mp4" },
{ type: "video/ogg", src: videoFile + ".ogv" }
]);
myPlayer.play();
myPlayer.volume(0.2);
$('div#videoViewer').show();
});
我一直在其他两个页面上使用相同的代码,并且没有任何问题让这个工作。现在,我和我的同事都已经调试了好几个小时,但没有更接近解决方案了。
这里有没有人有什么想法会导致就绪事件被忽略? 我一直在尝试禁用所有其他脚本以找到问题的根源,但它一直没有工作。
我非常感谢能够帮助我解决这个问题的任何答案。 提前谢谢!
最好的问候// Jonathan
答案 0 :(得分:4)
我遇到了同样的问题。在我的情况下,就绪事件不会在IE8中触发,因为我有一个设置为display:none
的包装器div。如果包装器可见,则ready事件将按预期触发。 IE9中没有出现此问题。
答案 1 :(得分:0)
我遇到了同样的问题,我的解决方案是直接将DOM元素传递给videojs函数的id。
//having this
<video id="VIDEO" ....>
//this fails
videojs('VIDEO').ready(...)
// this works!!
videojs(document.getElementById('VIDEO')).ready(...)
希望它有所帮助:D