我正在链接到 CDN 上的 jQuery Mobile 样式表,如果 CDN 失败,我想回退到我本地版本的样式表。对于脚本,解决方案是众所周知的:
<!-- Load jQuery and jQuery mobile with fall back to local server -->
<script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='jquery-1.6.3.min.js'%3E"));
}
</script>
我想为样式表做类似的事情:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css" />
我不确定是否可以实现类似的方法,因为我不确定浏览器在链接脚本时是否以与加载脚本时相同的方式阻塞(也许可以在脚本标记中加载样式表然后将其注入页面)?
所以我的问题是:如果 CDN 失败,如何确保在本地加载样式表?
原文由 ssn 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有跨浏览器测试,但我认为这会起作用。必须在你加载 jquery 之后,否则你将不得不用纯 Javascript 重写它。