首页 > web前端 > js教程 > 如何查找加载当前脚本的脚本标签?

如何查找加载当前脚本的脚本标签?

Patricia Arquette
发布: 2024-12-17 01:10:26
原创
422 人浏览过

How to Find the Script Tag That Loaded the Current Script?

如何引用加载脚本标签

在各种场景下,都需要引用加载当前正在执行的脚本标签脚本。这可以通过多种方法来实现,每种方法都有自己的优点和缺点。

1. document.currentScript

<script><br>var me = document.currentScript;<br></script><br>

优点:

  • 简单明确。
  • 可靠。
  • 适用于异步
  • 无需修改脚本标签。

    问题:

    • 旧版浏览器和 IE 不支持。
    • 不适用于模块(<脚本类型=“模块”>)。

      2.脚本 ID

      <script>var me = document.getElementById('myscript');<br></script><br>

      优点:

      • 显式和可靠。
      • 广泛支持。
      • 适用于异步脚本。

        问题:

        • 需要自定义属性。
        • Id 属性可能会导致特定的问题浏览器。

          3.数据属性

          <script data-name="myscript"><br>var me = document.querySelector('script[data-name="myscript"]');<br></script><br>
          登录后复制

好处:

  • 与之前的选项类似。
  • 支持异步脚本。

问题:

  • 需要自定义属性。
  • 并非所有浏览器都兼容 HTML5。
  • 与其他共享相同元素的潜在冲突属性。

4.脚本源

<script src="//example.com/embed.js"></script><br>

var me = document.querySelector('script[src="//example.com/embed.js"]');<br>
登录后复制

好处:

  • 没有自定义属性。
  • 适用于异步脚本。

问题:

  • 不适用于本地脚本。
  • 不同环境中的问题(例如,开发)和生产)。
  • 脆弱(更改脚本位置需要脚本修改)。

5.循环脚本

<script><br>var me = null;<br>var script = document.getElementsByTagName("script")<br>for (var i = 0; 脚本.长度; {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if( isMe(scripts[i])){
  me = scripts[i];
}
登录后复制

}

function isMe(scriptElem){<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if( isMe(scripts[i])){
  me = scripts[i];
}
登录后复制

}

好处:

  • 灵活,可以使用以前的

问题:

  • 效率低下。

6.最后执行的脚本


            
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板