我正在尝试创建一个主js控制器,其中包含我的应用程序所需的所有js文件,以保持所有内容尽可能结构化。
我认为这样可行,但似乎没有向head
添加任何内容:
HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../static/css/main.css" />
<link rel="stylesheet" type="text/css" href="../static/css/sub/navbar.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="../static/js/includes.js"></script>
<title>Untitled Document</title>
</head>
正如您所看到的,includes.js
是在Google的CDN jQuery之后导入的
includes.js的内容:
var scripts = ['../static/js/functions/notifications.js', '../static/js/functions/subnavbar.js'];
$(document).ready( function() {
var iterate = scripts.length;
for(i = 0; i < iterate; i++) {
$('head').append('<script type="text/javascript" src="' + scripts[i] + '"></script>');
}
});
我不知道为什么它没有将数组scripts
的内容追加到head
。我通过将内容附加到body
(see this jsFiddle)来测试脚本。
任何关于它为什么不起作用或编辑以使其工作的答案都将非常感激:)!
答案 0 :(得分:1)
需要考虑的事项:此问题已经为您解决,并且已经存在一个非常棒的JavaScript库。它叫做 Require JS 。
我强烈建议您在滚动自己的依赖项加载器之前检查它是否适合您的要求。
答案 1 :(得分:0)
您正在使用jQuery,为什么不使用$ .getScript? 这在此示例中正常工作:http://jsfiddle.net/x6rCr/