我目前正在开发HTML5视频播放器并连接错误事件监听器,但到目前为止还没有错误。
有没有办法伪造/模拟错误,以测试它是否正常工作?
也许我可以调用它来强制它出错?
答案 0 :(得分:4)
没有方法可以在浏览器中模拟错误。您必须自行设置环境以模拟错误(error
以及abort
事件):
然后针对每个方案运行特定测试,以查看代码的行为方式。
可以调度自定义事件,但问题是它不会阻止浏览器加载文件,这意味着您仍然可以获得可能存在冲突的加载事件等。
您可以通过在播放视频时更改视频源来生成abort
事件 - 这可能(如果您允许交换相同媒体元素的来源)您需要的内容处理,因为在这种情况下技术上不是错误。
答案 1 :(得分:1)
我不知道任何内置方法来模拟错误。我想你可以创建一个错误事件并将其发送到你的<source>
元素之一。
function simulateError() {
// I'm not sure if it would be better to use ErrorEvent()
// Using Chrome devtools, this gives an error event that appears
// almost identical to having a source that gets a 404
var event = new Event('error', {
'view': window,
'cancelable': true
});
var src = document.getElementById('sourceElement');
src .dispatchEvent(event);
}
另一种方法是遵循@andlrc的建议:给它一个破碎的视频或切断互联网。当源无效时我收到错误,所以你也可以试试。