是否有一种简单可靠的方法来确定当前正在执行的JavaScript文件(在网页内)的URL?
我对此的唯一想法是扫描DOM中的所有脚本src属性,以查找如何引用当前文件,然后将其应用于以确定绝对URL document.location。有人有其他想法吗,有没有我完全忽略的超级简单方法?
src
document.location
更新:通过DOM访问的脚本元素已经具有src包含完整URL 的属性。我不知道它的普遍性/标准性如何,但是您可以选择使用getAttribute("src")它来返回[X] HTML中的任何原始属性值。
getAttribute("src")
将其放在需要知道其自身URL的js文件中。
完全合格 (例如http://www.example.com/js/main.js):
http://www.example.com/js/main.js
var scriptSource = (function(scripts) { var scripts = document.getElementsByTagName('script'), script = scripts[scripts.length - 1]; if (script.getAttribute.length !== undefined) { return script.src } return script.getAttribute('src', -1) }());
或 如其在来源中所示 (例如/js/main.js):
/js/main.js
var scriptSource = (function() { var scripts = document.getElementsByTagName('script'), script = scripts[scripts.length - 1]; if (script.getAttribute.length !== undefined) { return script.getAttribute('src') } return script.getAttribute('src', 2) }());