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

我有一个类似的问题,像发布在这里,而不是获得父母的ID,我怎么可以得到脚本父母的引用,而不必编码脚本标记的ID?

例如,我将下面的代码注入一个网站:

<div> some other html tags <script src="http://path_to_my_script.js"></script> </div> 

我需要的是,在我的path_to_my_script.js文件中,我可以得到一个外部div的引用。

有一个问题是,代码将被复制和粘贴在同一个网页的几个地方,这使得一个标识符无用。

有没有机会做到这一点,而不需要在整个代码中编码?

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

提前致谢。

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

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

 var scriptTag = document.getElementsByTagName('script'); scriptTag = scriptTag[scriptTag.length - 1]; var parentTag = scriptTag.parentNode; 

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

 var scriptTag = document.scripts[document.scripts.length - 1]; var parentTag = scriptTag.parentNode; 

您可以使用属性select器来获取具有特定src的脚本,然后使用parent('div')跳转到包含其div元素。

 var parentDiv = $('script[src="path/to/script.js"]').parent('div'); 

你需要一种方法来引用你的脚本。 你还希望知道你想要哪个脚本? 如果你只有一个脚本,你可以随时做

 var myScript = document.getElementsByTagName("script")[0]; 

获取页面上第一个脚本的DOM元素。 或者你可以使用jQuery并通过你的脚本循环做一些事情:

 $("script").each(function() { alert($(this).html()); });