1

在我正在开发的脚本中,我检查变量是否为instanceof HTMLAudioElement. 当我通过 grunt 任务运行 QUnit 时,它失败了

>> Message: Died on test #1     at file:///path/test/lib/qunit.js:425
>>     at file:///path/test/all.js:24: Can't find variable: HTMLAudioElement
>> ReferenceError: Can't find variable: HTMLAudioElement

all.js实际上并没有引用HTMLAudioElement自己,它只是在我的主脚本中调用一些会使用它的代码。

all.html当我在 Firefox、Chrome 或 Safari 中打开时,所有测试都通过了。

这是预期的行为吗?它是否使用某种没有该构造函数的浏览器仿真?这是否意味着我的代码将在某些浏览器中失败,或者这只是配置错误而没有告诉我任何有用的信息?我如何解决它?

4

1 回答 1

4

对不起朋友,但是根据他们的网站,PhantomJS 不支持 HTML5audiovideo元素,因此HTMLAudioElement构造函数将不存在。

您可以通过围绕该代码检查与不受支持的浏览器的兼容性的条件来通过测试,也许使用诸如Modernizr 之类的东西?

于 2014-01-28T15:37:47.943 回答