jQuery选择当前脚本标记

jQuery Select current script tag

本文关键字:脚本 选择 jQuery      更新时间:2023-09-26

有人知道是否可以在没有任何其他选择定义的情况下使用jQuery选择当前脚本标记吗?

<script type="text/javascript">
$(document).ready( function(){
    // Here i need to select the current tag "<script ..."
})
</script>

在文档就绪方法之外,只需执行$('script').last();:

<script type="text/javascript">
var currentScript = $('script').last();
$(document).ready( function(){
    //Use the variable currentScript here
})
</script>

或者简单地给你的脚本一个id。

实现这一点的最稳健方法是:

<script>
 (function(script){
    //do whatever you want with script here...
 })(document.currentScript);
</script>

它比其他解决方案更健壮,因为您也可以在加载文档后使用它。此外,它不需要定义变量(如果您有多个脚本标记,这可能是一个问题,因为您不能重用相同的变量名(。使用JQuery:

<script>
     (function(script){
        $(document).ready(function(){
            // do whatever you want after the DOM as loaded here...
        });
     })(document.currentScript);
</script>

我认为这是最快的方式

<script type="text/javascript">
    var scripts = document.getElementsByTagName("script");
    var thisScript = scripts[scripts.length - 1];
</script>
<script type="text/javascript">
  var currentScript = document.currentScript || (function() {
     var scripts = document.getElementsByTagName('script');
     return scripts[scripts.length - 1];
  })();
<script/>

document.currentScript适用于大多数浏览器,而scripts[scripts.length - 1]是其他浏览器的后备(可能会对<script async>施加一些限制(。

进一步讨论

尝试这个

var scripts = document.getElementsByTagName("script");
var thisScript = scripts[scripts.length - 1];