- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习网络组件。要获取模板,我需要这样做:
<template>
<div>The sky is blue</div>
</template>
<script>
var tmpl = (document.currentScript||document._currentScript).ownerDocument.querySelector('template');
代替:
var tmpl = document.querySelector('template');
我完全不明白这部分:(document.currentScript||document._currentScript).ownerDocument
什么是currentScript
,什么是ownerDocument
?什么目的?为什么它有效。请注意,我在上面显示的模板代码是通过 link
元素引入的。
最佳答案
_currentScript
用于旧webcomponentsjs polyfill(版本 0.x)。现在,如果你使用 polyfill 版本 1.x,它总是 undefined
.
你应该只使用 document.currentScript
:
<template>
<div>The sky is blue</div>
</template>
<script>
var tmpl = document.currentScript.ownerDocument.querySelector('template');
</script>
document.currentScript.ownerDocument
将为您提供对导入文档的引用(使用 <link rel='import'>
),其中当前 <script>
正在运行,<template>
在哪里已定义。
参见 this SO answer (和 this one)以获取有关此主题的更多详细信息。
关于javascript - 什么是 "document.currentScript"和 "ownerDocument"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47419825/
我在 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
我是一名优秀的程序员,十分优秀!