如何解决video.js 5.6.0运行时错误 - 对象不支持此属性或方法?

时间:2016-02-06 04:47:46

标签: javascript video runtime-error video.js

我最近切换到使用video.js版本5.6.0(之前使用的是4.x版本),并注意到我现在使用非缩小版本的video.js始终得到以下错误:

http://vjs.zencdn.net/5.6.0/video.js的第8栏第8栏引发了异常 0x800a01b6 - JavaScript运行时错误:对象不支持此属性或方法

我在使用video.js和行:

时没有改变任何内容
<script src="http://vjs.zencdn.net/5.6.0/video.js"></script>

出现在视频元素的正下方。匹配的5.6.0 CSS出现在head部分的链接标记中。

这是在Windows 8.1上的Internet Explorer 11下进行的。通过Visual Studio 2013报告错误。

我尝试回到video.js版本5.4.6,但它在同一行给出了相同的错误。我尝试了5.6.0和5.4.6的缩小版本,两者都给出了相同的错误(当然是在不同的行/列)。

我已经检查了有问题的区域,但必须承认我在JavaScript方面不够精通,无法确定导致此问题的原因。我已经注释掉了我自己的所有JavaScript,以确保它不会以某种方式与video.js进行交互,而且我仍然会一致地得到错误。

有关如何修复或解决此错误的任何想法?尽管出现了这个错误,video.js播放器似乎按预期工作,所以它不是一个阻塞问题......只是一个问题。

1 个答案:

答案 0 :(得分:0)

如果你看一下脚本的那一部分,你会看到在try catch块中处理错误的行,正是因为现代浏览器会出现错误。后续代码只需要在没有错误的浏览器上运行。这是来自lodash,video.js使用的实用程序库。这类测试并不少见。

var isHostObject = (function() {
  try {
    Object({ 'toString': 0 } + ''); // Line 811
  } catch(e) {
    return function() { return false; };
  }
  return function(value) {
    // IE < 9 presents many host objects as `Object` objects that can coerce
    // to strings despite having improperly defined `toString` methods.
    return typeof value.toString != 'function' && typeof (value + '') == 'string';
  };
}());

这里没有什么可以解决的。如果您在调试工具中打开了“中断所有异常”,则只会看到此错误(Visual Studio中的术语可能会有所不同)。 “打破未处理的异常”通常更有用,因为它显示了不期望且需要采取措施的错误。