【问题标题】:Get the current js file path which is inserted dynamically [duplicate]获取动态插入的当前js文件路径[重复]
【发布时间】:2015-01-30 14:17:43
【问题描述】:

我使用类似 javascript 的 http://example.com/index.html 标签在 <script> 标签中创建了一个 <script> 标签

 (function() {
            var script_tag = document.createElement('script');
            script_tag.setAttribute("type","text/javascript");
            script_tag.setAttribute("src", "http://example2.com/xyz/def/internal.js");
            (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    })();

现在在这个 internal.js 文件中,我想获取它的文件路径“http://example2.com/xyz/def/

【问题讨论】:

  • 您不需要使用.setAttribute() 来设置这些属性,并且您根本不需要设置“type”属性。只需script_tag.src = "..."; 即可。
  • @pointy 好的,顺便说一句,这不是我问的。还是谢谢。
  • @A1rPun 不,这里脚本是通过js自己创建的,所以可能不是最后一个创建的脚本。
  • @void 它将是添加时文档中的最后一个 <script> 标记,因为尚未看到其他标记。
  • 不,当前脚本将是脚本标签本身而不是 js 文件。

标签: javascript


【解决方案1】:

internal.js

var scripts = document.getElementsByTagName('script'),
    script = scripts[scripts.length - 1], url = "";
if (script.getAttribute.length !== undefined) {
   url = script.src;
}
else
{
   url = script.getAttribute('src', -1);
}

对于现代浏览器,这应该可以工作

url = document.currentScript.src;

【讨论】:

  • 它不会工作,因为 scripts[scripts.length - 1] 将返回
猜你喜欢
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 2021-11-02
  • 2016-10-25
  • 2015-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多