我有以下内容:
<script type="module">
// some code here to get the <script>'s DOM reference
</script>
有可能吗?
可能有任何这样的 playbook .我想在脚本后面插入HTML,但没有显式引用.
我有以下内容:
<script type="module">
// some code here to get the <script>'s DOM reference
</script>
有可能吗?
可能有任何这样的 playbook .我想在脚本后面插入HTML,但没有显式引用.
您可以使用classic 的<script>
来定义一些全局变量,然后依赖<script type="module">
的defer
x default这一事实,这意味着它们将在所有文档完全解析后、但在DOMContentLoaded
触发之前按顺序执行.
此代码只是为了让您大致了解如何在不通过一些data-
属性为脚本标签提供显式标识符的情况下实现这一目标,然后您可以在这些属性上运行document.querySelector
.
NOTE:您应该只复制/粘贴片段中的内容,并在Web服务器上运行即可查看其工作,或者see it on GitHub pages.我认为片段环境是not fully supportive of ES modules.
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
var counted = 1
var script = null
</script>
<p>content before first module script</p>
<script type="module">
script = document.scripts[counted++]
script.insertAdjacentHTML('afterend', `<p>inserted after ${counted - 1} module script</p>`)
</script>
<p>content after first module script</p>
<script type="module">
script = document.scripts[counted++]
script.insertAdjacentHTML('afterend', `<p>inserted after ${counted - 1} module script</p>`)
</script>
<p>content after second module script</p>
<script type="module">
script = document.scripts[counted++]
script.insertAdjacentHTML('afterend', `<p>inserted after ${counted - 1} module script</p>`)
</script>
<p>content after third module script</p>
</body>
</html>