gpt4 book ai didi

javascript - 获取调用函数的脚本标签的节点引用

转载 作者:行者123 更新时间:2023-11-29 10:25:41 25 4
gpt4 key购买 nike

如何获取对调用函数的 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 查找,但我认为如果没有这样的事情会更灵活和优雅。主要原因是我可能必须在我们的网站上做一些工作才能使第 3 方广告成型,而且我们无法控制他们用来加载广告的脚本。

最佳答案

假设script标签没有被deferred,当函数执行时,应该是从页面中的最后一个script标签开始。所以像

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

应该得到引用。

您应该将原始函数包装在您自己的构造中以插入此代码,例如:

var old_global = globalFunction;
globalFunction = function () {
var scripts = document.getElementsByTagName("script");
var scriptElement = scripts[scripts.length-1];

old_global.call(this,arguments);

// do something after
};

此代码未经测试,但可能会给您启发。

关于javascript - 获取调用函数的脚本标签的节点引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1917836/

25 4 0