我最近切换到使用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播放器似乎按预期工作,所以它不是一个阻塞问题......只是一个问题。
答案 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中的术语可能会有所不同)。 “打破未处理的异常”通常更有用,因为它显示了不期望且需要采取措施的错误。