CMS中的高级用户(设计人员/ Web开发人员)可能有权在其内容中添加内联JavaScript / jQuery代码,以执行某些操作,例如通过$(function(){ $('#banner').hide() });
等隐藏CMS中特定页面上的内容更高级的东西,比如在内容中添加的输入上添加一个jQuery UI datepicker。
我的问题是,如果jQuery及其相关插件是通过YepNope异步加载的(或者我也假设是RequireJS)...那么当登陆该页面时,由于jQuery库不可用(直到几微秒),它将会出错以后它加载时。)
在这样的现有网站中引入像YepNope这样的类加载器的最佳方法是什么,以使这个内联代码保持不变?
我最好的猜测是,如果想要CDN /后备,然后像HTMLBoilerplate一样同步加载(或者如果不需要CDN-fallback,只需通过脚本标记正常加载):
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/jquery/jquery-ui/js/jquery-1.7.1.min.js"><\/script>')</script>
<!-- maybe load Jquery UI and Jquery plugins that i know users will use -->
然后只使用yepnope加载器用于其他不需要在页面上使用的东西?
或者你可以做一些技巧来推迟内联脚本的执行,直到yepnope完成加载?
答案 0 :(得分:1)
实际上谷歌搜索得更好,我发现我相信的答案: https://stackoverflow.com/a/9582428/201156
此处还提到了延迟加载内联脚本的想法,这很有趣: https://stackoverflow.com/a/10197342/201156