IE8:触发“loadedmetadata”事件

时间:2013-10-29 22:08:33

标签: javascript events internet-explorer-8 mediaelement.js

我正在尝试触发“loadedmetadata”,这是一个重新创建视频标记的事件(因为我需要原始加载视频的尺寸)。

我已经看过this answer我编写了这个例子:

if (!$("mySelector").addEventListener) {
    $("#mySelector").addEventListener("loadedmetadata", function(e){
        alert("Fired with addEventListener!");
    }, false);
}
else {
    $("#mySelector").attachEvent("onloadedmetadata", function(e){
        alert("Fired with attachEvent!");
    });
}

使用IE8,我有一个漂亮的“对象不支持这个属性或方法”。我在这里做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您不应该将jQuery与JavaScript方法结合使用。使用.bind()方法添加loadedmetadata事件,例如:

$('#myMedia').bind('loadedmetadata', function(e){
  // e is Event Object jQuery handles
  var ht = $(this).height(), wd = $(this).width();
});

由于IE9标准化.addEventListener(),IE9之前不存在媒体事件,因此它永远不会用.attachEvent()触发。这些方法都不是jQuery函数$()返回的Object的属性。

如果上述解决方案不起作用,您应该看一下:

jQuery, checking to see if video has height/width

相关问题