如何获取javascript文件的位置(src)?

Jos*_*son 8 javascript

javascript文件如何知道它位于何处?例如:

<script type="text/javascript" src="http://mysite.com/scripts/howdy.js"></script>
Run Code Online (Sandbox Code Playgroud)

如何howdy.js知道代码http://mysite.com/scripts/howdy.js

编辑:澄清.我不能依赖于在DOM中搜索我的脚本标记,因为我需要在DOM准备好之前了解它.

CMS*_*CMS 13

在正在执行当前脚本的那一刻,将是最后script的DOM元素,所以你可以得到它:

var scripts = document.getElementsByTagName('script'),
    currentScriptSrc = scripts[scripts.length-1].src;
Run Code Online (Sandbox Code Playgroud)

检查此示例加载此脚本.

编辑:考虑到@kangax的评论,关于asyncdefer属性,IMO,以前知道文件名的唯一安全方式是检查script页面上的元素,检查它的src属性,像Scriptaculous.us这样的库使用这种技术, 例如:

var scripts = document.getElementsByTagName('script'),
    len = scripts.length,
    re = /howdy\.js$/,
    src, howdyScriptSrc;

while (len--) {
  src = scripts[len].src;
  if (src && src.match(re)) {
    howdyScriptSrc = src;
    break;
  }
}
?
Run Code Online (Sandbox Code Playgroud)