javascript - 如何为 css 文件实现 CDN 故障保护?

标签 javascript html css web cdn

对于 CDN 上托管的 javascript,我始终可以在其下面添加一些脚本来检查它是否加载成功:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
if (!window.jQuery) {
var script = document.createElement('script');
script.src = "/js/jquery.min.js";
document.body.appendChild(script);
}
</script>

我还使用了一些托管的 css 文件,例如 bootstrap.css 文件。如何可靠地检查它是否已加载到网页上,并在未加载时提供故障保护?

-----编辑--------

顺便说一句,我应该使用:

document.body.appendChild(script);

或者:

document.write("<scr"+"ipt>"...);

哪一个保证所有浏览器中的执行顺序?

最佳答案

您可以使用onloadonerror事件...

<link rel="stylesheet" type="text/css" href="cdnurl/styles.css" 
    onload="alert('loaded')" onerror="javascript:loadCSSBackup()" />

JavaScript:

function loadCSSBackup(){
    var css = document.createElement("link")
    css.setAttribute("rel", "stylesheet");
    css.setAttribute("type", "text/css");
    css.setAttribute("href", 'backup/styles.css');
    document.getElementsByTagName("head")[0].appendChild(css);
}

关于第二个问题,你应该避免使用document.write。如上面的代码所示附加到正文或头部应该没问题。

关于javascript - 如何为 css 文件实现 CDN 故障保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22879099/

相关文章:

css - 如何将 gulp-bless 与 gulp-useref 一起使用

javascript - 如何根据浏览器窗口大小调整 div 的大小?

javascript - 为什么我无法关闭剑道窗口

JavaScript 要么 strokeRect 要么 fillRect 模糊取决于翻译

javascript - Web App - 将非常大的数据流保存到本地文件

javascript - HTML Canvas - 从特定点旋转一条线

javascript - 如何从视频标签的媒体播放器中删除/隐藏仅播放/暂停图标/按钮

javascript - 将动态数据保存在对象中?

javascript - 为什么 time() 和 Date.now 给出不同的结果?

javascript - Chrome 扩展 list V3 如何读取我的用户正在查看的网页的 HTML 和文本内容