如何测试是否从CDN成功加载了一些javascript库?



从CDN下载javascript文件时,我想提供一个本地回退。然而,对于我来说,如何测试某个负载是否成功并不总是显而易见的。

对于一些流行的东西,这在其他StackOverflow问题中有很好的记录,例如,对于Bootstrap,一个只是分别测试if (window.jQuery),if (window.Popper),if ($.fn.modal)的三个部分。然而,对于其他库,这就不那么明显了:

  • 对于jQuery验证,我发现相互矛盾的信息:这个主题建议可以做if (window.validator),这个建议需要if(typeof $().validate == 'undefined')。它们之间的区别是什么,为什么我需要一个而不是另一个?
  • 对于不太流行的库,例如balanceText,我应该如何发现库是否加载成功?

一个通用的答案/方法将是完美的,但如果这是不可行的,我将非常感谢关于这两个库的答案。

如果您正在使用自己加载脚本,您可以在script元素上使用onerror事件来查看脚本是否加载,而不是检查副作用。例子:

<script>
function cdnLoaded() {
console.log('loaded');
}
function cdnError() {
console.log('not loaded');
// do error handling here
}
</script>
<script onload="cdnLoaded()" onerror="cdnError()" async src="https://unpkg.com/react@17.0.1/umd/react.production.min.js"></script>
<script onload="cdnLoaded()" onerror="cdnError()" async src="https://unpkg.com/nothing-here.js"></script>

相关内容

  • 没有找到相关文章