首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果popper.js无法加载

如果popper.js无法加载
EN

Stack Overflow用户
提问于 2017-11-02 14:36:47
回答 1查看 3.7K关注 0票数 3

如何测试popper.js是否已加载,以便从CDN返回到本地副本?

Popper是引导4所需的,必须先加载。我想使用下面使用的引导回退技术,这样如果popper.js CDN失败,浏览器就会回到从我的服务器加载popper.js。

代码语言:javascript
复制
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>
<script>if(typeof($.fn.modal) === 'undefined') {document.write('<script src="local/bootstrap.min.js"><\/script>')}</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-02 14:50:47

检查Popper变量。

如果它的类型是“未定义”,则Popper无法加载,您可以回退到本地副本:

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" ></script>
<script>if(typeof(Popper) === 'undefined') {document.write('<script src="static/lib/popper.min.js"><\/script>')}</script>

--

2019年2月更新

由于Chrome >55现在“介入”了一些包含脚本标记的document.writes (比如2G手机上的用户),但是,如果document.write引用相同的域或TLD+1 (即从www.mydomain.com上的html文件引用static.mydomain.com上的脚本),那么Chrome不会干预并停止脚本下载。因此,就目前而言,上述方法工作良好。我还对代码进行了一些改进:

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script>window.Popper || document.write('<script src="static/lib/popper.min.js"><\/script>')</script>

另一个需要考虑的更改是将document.write放在一个函数中,并对首选的分析提供程序进行事件调用,这样您就可以跟踪站点何时返回到外部脚本的本地副本,而不是默默地这样做。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47077919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档