一尘不染

我的脚本src URL是什么?

javascript

是否有一种简单可靠的方法来确定当前正在执行的JavaScript文件(在网页内)的URL?

我对此的唯一想法是扫描DOM中的所有脚本src属性,以查找如何引用当前文件,然后将其应用于以确定绝对URL
document.location。有人有其他想法吗,有没有我完全忽略的超级简单方法?

更新:通过DOM访问的脚本元素已经具有src包含完整URL
的属性。我不知道它的普遍性/标准性如何,但是您可以选择使用getAttribute("src")它来返回[X] HTML中的任何原始属性值。


阅读 344

收藏
2020-05-01

共1个答案

一尘不染

将其放在需要知道其自身URL的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):

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)
}());
2020-05-01