微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何测试是否从 CDN 成功加载了某个 javascript 库?

从 CDN 下载 javascript 文件时,我想提供本地后备。然而,如何测试某个加载是否成功对我来说并不总是很明显。

对于一些流行的东西,这在其他 StackOverflow 问题中有详细记录,例如对于 Bootstrap one,分别测试 if (window.jQuery)if (window.Popper)if ($.fn.modal) 的三个部分。但是,对于其他库,这不太明显:

  • 对于 jQuery Validate,我发现了相互矛盾的信息:this topic 表示可以执行 if (window.validator)this one 表示需要 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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。