如何通过JavaScript文件将所有JavaScript文件包含在目录中?

Hri*_*sto 40 javascript jquery getscript

我有一堆JavaScript文件,我想在页面中包含,但我不想继续写

<script type="text/javascript" src="js/file.js"></script>
Run Code Online (Sandbox Code Playgroud)

那么有没有办法将所有文件都包含在目录中(未知大小)?我能做点什么......

$.getScript("js/*.js");
Run Code Online (Sandbox Code Playgroud)

...获取"js"目录中的所有JavaScript文件?我怎么能用jQuery做到这一点?

Mar*_*sey 25

一般来说,这可能不是一个好主意,因为你的html文件应该只加载他们实际使用的JS文件.无论如何,这对于任何服务器端脚本语言来说都是微不足道的.只需在将页面提供给客户端之前插入脚本标记.

如果要在不使用服务器端脚本的情况下执行此操作,可以将JS文件放入允许列出目录内容的目录中,然后使用XMLHttpRequest读取目录的内容,并解析文件名并加载它们.

选项#3是一个"加载器"JS文件,它使用getScript()来加载所有其他文件.将它放在所有html文件的脚本标记中,然后只需在上传新脚本时更新加载程序文件.

  • jellyfishtree,我不认为你理解我在说什么 - 例如,如果OP将所有JS文件放在"脚本"目录中,那么他们的HTML页面上的javascript就可以执行XmlHttpRequest" http://example.com/scripts/",它将返回服务器上的目录列表.然后他们可以解析响应的文本,并加载每个单独的文件. (4认同)

jel*_*ree 23

使用服务器端脚本生成脚本标记行怎么样?粗略的,像这样(PHP) -

$handle=opendir("scripts/");

while (($file = readdir($handle))!==false) {
echo '<script type="text/javascript" src="$file"></script>';
}

closedir($handle);
Run Code Online (Sandbox Code Playgroud)


rob*_*rob 14

鉴于您需要100%的客户端解决方案,理论上您可能会这样做:

通过XmlHttpRequest,获取该目录的目录列表页面(如果目录中没有index.html文件,大多数Web服务器将返回文件列表).

用javascript解析该文件,拉出所有.js文件.这当然会对您的Web服务器/ Web主机上的目录列表的格式敏感.

动态添加脚本标记,如下所示:

function loadScript (dir, file) {
 var scr = document.createElement("script");
 scr.src = dir + file;
 document.body.appendChild(scr);
 }
Run Code Online (Sandbox Code Playgroud)