获取对<script>父元素的引用

dio*_*ney 35 javascript jquery reference

我有一个类似的问题,如发布在这里,但不是获取父ID,如何获得对脚本父的引用,而不必编写脚本标记的ID?

例如,我将以下代码注入网站:

<div>
     some other html tags
     <script src="http://path_to_my_script.js"></script>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要的是,在我的path_to_my_script.js文件中,我可以获得对外部的引用div.

有一个问题是,代码将被复制并粘贴到同一网页的多个位置,这使得标识符无用.

如果没有在整个代码中编码id,有没有机会这样做?

如果解决方案是使用jQuery更好:D

提前致谢.

Rob*_*b W 47

正如Javascript中的当前元素是什么?,目前的<script>元素也是最后一个<script>元素,在执行的时间.

答案也适用于您的情况,因为外部脚本的加载不会延迟(通过asyncor defer属性).

var scriptTag = document.getElementsByTagName('script');
scriptTag = scriptTag[scriptTag.length - 1];
var parentTag = scriptTag.parentNode;
Run Code Online (Sandbox Code Playgroud)

大多数浏览器(甚至是IE6)都支持document.scripts.Firefox从版本9开始支持此对象.因此,也可以使用以下代码:

var scriptTag = document.scripts[document.scripts.length - 1];
var parentTag = scriptTag.parentNode;
Run Code Online (Sandbox Code Playgroud)

  • 更简单:`document.currentScript.parentElement` (7认同)
  • 我多么希望这是解决我的问题的解决方案.事实是我的应用程序执行了很多动态加载javascript但是`document.scripts`数组只包含第一个也是唯一一个实际在html本身的javascript文件.所有以后加载的js文件根本就没有... (6认同)