- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
中的 document.currentScript.ownerDocument?-6ren"> 中的 document.currentScript.ownerDocument?-如何在脚本 type="module"中获取 ownerDocument? text let owner = document.currentScript.ownerDocument /-6ren">
如何在脚本 type="module"中获取 ownerDocument?
<template>
text
</template>
<script type="module">
let owner = document.currentScript.ownerDocument // is null
// But i need get <template>
let tpl = owner.querySelector('template')
</script>
最佳答案
规范明确指出,当使用 <script type="module">
时document.currentScript
属性设置为 null
在执行期间。 See spec under "execute a script block" .
当然,如果使用 src
就很明显了属性。源无法知道它将被脚本标记而不是导入语句(或两者)调用。内联模块时总是有一个脚本标记,但我猜他们想让体验保持一致。
如果你的文件实际上是window.document
这仍然可以作为一个全局性的。否则,如果您仍希望将脚本作为模块加载,则有两种选择:
不是最漂亮的;在模块上方创建一个全局并存储模板。
<script type="text/javascript">
window.myTemplates = ((ns) => {
const owner = window.document.currentScript.ownerDocument;
ns.fancyButton = owner.querySelector("template");
return ns;
})(window.myTemplates || {});
</script>
<script type="module">
const tpl = window.myTemplates.fancyButton;
// ...
</script>
不要将模板编写为 HTML 模板,而应编写为 ES/JS 模板。您的编辑器可能不支持突出显示文字 HTML,标签的 linting 是一个问题。
<script type="module">
const tpl = window.document.createElement("template");
tpl.innerHTML = `
<strong>example</strong>
<span style="background-color: rgba(127,127,127,0.6);">text</span>
`;
// ...
</script>
关于html - 如何获取 <script type ="module"> 中的 document.currentScript.ownerDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45228821/
我在 Chrome 扩展中定义了 XHR 请求,该请求从特定网站提取 JavaScript 文件并在其中执行函数。像这样: //This will return the remote JS file
浏览器是Chrome,应该支持document.currentScript 但是 index.html 1.js setInterval(function() { var fullUrl =
当用户滚动页面时,我将附加一个 div 标签,并在同一 div 中附加一个 js 标签。 现在,我用“js_div_1”、“js_div_2”、“js_div_3”等指向父标记,并附加一些内容。 HT
这是一个示例代码: HTML alert('This is alert!') JS window.alert = function(data) //alert() over-riding {
我使用 html(),但找不到在父脚本中获取变量的方法。 child.html document.currentScript.childVar = { para
我想从 shadowDOM 内部访问当前脚本或 shadow root。 并且,最终目的是在同一个 shadowDOM 中获取 div.target 元素。 我尝试使用 document.curren
我想通过将数据的 id 作为 script 标记中的属性将数据附加到 div 中。在此示例中,first-div 应该附加“test1”,second-div 应该附加“test2”。 但是,结果是“
我正在学习网络组件。要获取模板,我需要这样做: The sky is blue var tmpl = (document.currentScript||document._curre
如何在脚本 type="module"中获取 ownerDocument? text let owner = document.currentScript.ownerDocument /
这是一个返回图像宽度的函数,给定图像的 url: async function getImageWidthByUrl(imgUrl) { const imgEl = document.create
我是一名优秀的程序员,十分优秀!