【问题标题】:IE8 : fire the "loadedmetadata" eventIE8:触发“loadedmetadata”事件
【发布时间】:2013-10-29 22:08:33
【问题描述】:

我正在尝试触发“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,我有一个漂亮的“对象不支持此属性或方法”。我在这里做错了什么?

提前致谢。

【问题讨论】:

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


    【解决方案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, checking to see if video has height/width

    【讨论】:

    • 感谢您的回答。可悲的是,IE8 不会触发该事件,并且 .width()/.height() 在我的视频加载时也不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多