备选项popper.js加载失败

问题描述 投票:2回答:1

如何测试popper.js加载,这样我可以从一个CDN退回到一个本地副本?

波普通过自举4必需的,必须首先被加载。我想,这样如果popper.js CDN失败,浏览器从我的服务器回落到装载popper.js使用我在下面使用相同的引导回退技术。

<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>
javascript bootstrap-4 cdn fallback popper.js
1个回答
8
投票

检查波普尔变量。

如果它的类型是“不确定的”,那么,波普尔加载失败,你可以回退到本地副本:

<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月更新

由于铬> 55现在在某些document.writes包括脚本代码(如上2G移动用户)“介入”,但是如果执行document.write引用上static.mydomain相同的域或TLD + 1(即,脚本.COM从www.mydomain.com一个HTML文件中引用),那么Chrome不会干预和停止脚本下载。所以现在上面的方法能正常工作。我也演变代码一点:

<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>

另外一个变化要考虑的是把这里的文件撰写成一个函数,使事件调用您的首选分析服务提供商,这样你可以在你的网站是回落到外部脚本的本地副本跟踪,而不是它只是默默地这样做。

© www.soinside.com 2019 - 2024. All rights reserved.