【发布时间】:2013-09-20 13:56:23
【问题描述】:
有什么方法可以在文档准备好后获取 javascript 文件的文件信息(文件名、路径),而不知道有多少脚本或它们的加载顺序?
即
<html>
<head>
<script src="http://www.example.ex/js/js1.js" type="text/javascript">
<script src="http://www.example.ex/javascript/js2.js" type="text/javascript">
<script src="http://www.example.ex/scripts/js3.js" type="text/javascript">
<...>
文件 js2.js 的内容如下:
$(document).ready(function() {
// get the filename "js2.js"
}
我可以的
var scripts = document.getElementsByTagName("script"),
scriptLocation = scripts[1].src;
但索引“[1]”必须是动态的,因为我不知道加载脚本的顺序。
【问题讨论】:
-
how to get the absolute path of the current javascript file name 的可能副本。正如那里接受的答案所说:“当然,这只会在初始代码运行时起作用,并且例如在加载初始脚本后调用的函数中没有用,所以如果您需要稍后可用的值,您需要将其保存到变量中。”
-
正如那个答案所说,当前运行的脚本始终是
scripts[scripts.length - 1]。您只需要在文档就绪处理程序之前保存对名称的引用。 -
@MattBall 我想你的意思是一个脚本在加载时只执行一次。那是我的错误,我应该问文档完全加载后,当我调用一个函数时,我怎么知道这个函数所在的脚本的索引而不保存它?希望你理解我。
-
如果之前不保存,就没有 100% 正确的方法。最好使用a stack trace hack。没有什么可以说在任意时间执行的任意 JS sn-p 甚至 exists 在文件中。我很想知道你为什么要这样做,因为这真的开始闻起来像an XY problem to me.
标签: javascript jquery