我正在尝试将一些 jQuery 库动态加载到文档头中。
<head>
<script src="../js/jQuery.js"></script>
<script src="../js/App.js"></script>
</head>
jQuery.js 看起来像这样:
(function() {
/*
* load all jQuery components
*
* @private
*/
var head = document.getElementsByTagName('head')[0];
var components = [];
var jQuery = document.createElement('script');
jQuery.type = 'text/javascript';
jQuery.src = 'http://' + location.host + '/js/jquery-1.8.2.min.js';
components.push(jQuery);
var jQueryMobile = document.createElement('script');
jQueryMobile.type = 'text/javascript';
jQueryMobile.src = 'http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js';
components.push(jQueryMobile);
var jQueryMobileCSS = document.createElement('link');
jQueryMobileCSS.type = 'text/css';
jQueryMobileCSS.href = 'http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css';
components.push(jQueryMobileCSS);
var meta = document.createElement('meta');
meta.name = 'viewport';
meta.content = 'width=device-width, initial-scale=1';
components.push(meta);
components.forEach( function( component ) {
head.appendChild( component );
});
// EDIT - FIX:
var App = document.createElement('script');
jQueryMobile.type = 'text/javascript';
jQueryMobile.src = 'http://' + location.host + '/js/App.js';
jQuery.onload = function() {
head.appendChild(App);
};
})();
console.log 显示 head 对象包含加载 jQuery 库的脚本标签。App.js 需要 jQuery,但会抛出错误,指出未定义 jQuery。我错过了什么?