1. 如何监听html外链资源加载失败
方案一: 当资源(如img或者script)加载失败时,加载资源的元素会触发一个Event接口的error事件,并执行该元素上的onerror()处理函数。
<script onerror="onError(this)"></script>
方案二:window.addEventListener 因为onerror事件并不会向上冒泡,所以window.onerror接收不到加载失败的错误。但是可以通过捕获的方式全局监听加载失败的错误,虽然这也监控到了脚本错误,但可以通过判断筛选出加载失败的错误。
window.addEventListener('error', (event) => {
if (!(event instance ErrorEvent)) {
// 加载失败
}
// 判断也可通过target来筛选
const target = event.target|| event.srcElement;
const isElementTarget = target instanceof HTMLScriptElement || target instanceof HTMLLinkElemnt || target instanceof HTMLImageElement;
if (!isElementTarget) return;
// 获取资源地址
const url = target.src || target.href;
}, true)