0

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

我已经看到了我编写此示例的答案:

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

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

提前致谢。

4

1 回答 1

1

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

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

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

如果上述解决方案不起作用,您应该查看以下内容:

jQuery,检查视频是否有高度/宽度

于 2013-10-29T22:20:52.707 回答