视频JS就绪事件和IE8

时间:2012-06-04 08:33:28

标签: javascript html5 javascript-events html5-video

我目前正在使用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

2 个答案:

答案 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