我对下面的javascript使用了CDN:
对于每一个,我如何在它可能被阻止/不可用的实例中恢复使用本地副本?
发布于 2011-04-04 03:14:41
要确认cdn脚本已加载,您可以检查此脚本定义的任何变量/函数是否存在,如果未定义,则cdn失败,您需要加载本地脚本副本。
基于这个原则的解决方案是这样的:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>
(如果没有定义window.jQuery属性,则未加载cdn脚本)。
您可以使用此方法构建自己的解决方案。例如,jquery工具提示插件创建了$.tooltip()
函数,所以我们可以像这样用代码检查它:
<script>
if (typeof $.tooltip === 'undefined') {
document.write('<script src="js/libs/jquery.tooltip.min.js">\x3C/script>');
}
</script>
发布于 2011-04-02 17:32:23
发布于 2011-04-06 14:29:44
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
取自HTML5 Boilerplate。
https://stackoverflow.com/questions/5257923
复制相似问题