我正在使用CDN加载JQuery和JQuery Mobile。在它们之间我必须加载一个mobileinit脚本,它似乎表明当jqm脚本开始激活时会部分下载它以配置它的全局设置。
http://api.jquerymobile.com/mobileinit/
所以在我的页面中,我有第一个:
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='~/Scripts/mobile/jquery-1.10.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
然后第二次这样做:
<script src="//ajax.aspnetcdn.com/ajax/jquery.mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
<script type="text/javascript">
if (typeof jQuery.mobile == 'undefined') {
document.write(unescape("%3Cscript src='~/Scripts/mobile/jquery.mobile-1.4.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
即使在顶部加载了所有这些脚本之后,我也会拥有在此之后执行的本地脚本。 2错误继续弹出。
&#39;未捕获的ReferenceError:jQuery未定义&#39; &#39;未捕获的ReferenceError:$未定义&#39;
我很想知道使用document.write添加对脚本的本地引用的脚本块是否实际加载了脚本。我正在考虑使用像Modernizr.Load这样的东西来确保脚本实际加载然后继续加载其余部分,但似乎也存在问题。我谷歌这个问题,一次又一次,互联网上的人似乎说document.write是这样做的方式。