如何获得对称为功能的DOM脚本标记的引用?

例如:

<script type="text/javascript">
    var globalfunc = function(){
        //obtain a reference to the script block that globalfunc() was called from
    }
</script>

<script type="text/javascript">
    globalfunc();
</script>

我知道我可以为脚本元素分配一个id或类,然后将其传递给我的函数以进行DOM查找,但是我认为如果没有这种方法,这样做会更加灵活和优雅。主要原因是,我可能必须在我们的网站上做一些工作才能使第三方广告整齐划一,而且我们无法控制他们用来加载广告的脚本。

最佳答案

实际上,如果您想要有效的标记,则不能将类或id分配给script元素。也就是说,我已经使用了该方法,是的,它确实有效。

或者,使用并让记录显示我永远不会这样做,您可以执行以下操作:

var scripts = document.getElementsByTagName("script");

for (var i=0, l=scripts.length; i<l; ++i ) {
  if ( scripts[i].innerHTML.indexOf("globalfunc();") != -1 ) {
     // Found a script tag in which `globalfunc();` is executed
  }
}

10-06 11:35