如何使用纯javascript从脚本内部将脚本本身称为HTML DOM元素?
这样做的目的是相对于脚本操纵HTML DOM的其他元素。
像<script>this.previousSibling ... this.nextSibling ... </script>
这样的东西。
答案 0 :(得分:0)
最简单的方法是在脚本标记上插入id
,然后可以在DOM中找到它。
<script id="myscript">
var s = document.getElementById("myscript");
</script>
您还可以在脚本中插入自己的DOM元素,然后找到:
<script>
document.write('<div id="myDiv"></div>');
var d = document.getElementById("myDiv");
</script>
如果脚本是外部脚本,并且您没有控制加载它的标记(因此您无法在其上添加ID),但您确实控制了从中加载的URL,那么您可以搜索脚本标记的所有脚本标记,其.src
属性与脚本的来源匹配。
<script src="http://whatever.com/myscript.js"></script>
然后,在myscript.js中,您可以拥有以下代码:
function findScriptTag(href) {
var tags = document.getElementsByTagName("script");
for (var i = 0; i < tags.length; i++) {
if (tags[i].src === href) {
return tags[i];
}
}
return null;
}
var s = findScriptTag("http://whatever.com/myscript.js");