Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML规范在哪里声明a<;模板>';s的内容物是惰性的?_Javascript_Html_Html5 Template - Fatal编程技术网

Javascript HTML规范在哪里声明a<;模板>';s的内容物是惰性的?

Javascript HTML规范在哪里声明a<;模板>';s的内容物是惰性的?,javascript,html,html5-template,Javascript,Html,Html5 Template,“模板的内容”(通过HTMLTemplateElement.prototype.content访问)存储在与主文档以外的其他文档相关联的文档片段中 所以,因为temp.content.ownerDocument!=文档,这是可以的: <template id="templ"> <script>console.error('This does not execute!');</script> </template> 换句话说,脚本仍然是主文档的

“模板的内容”(通过
HTMLTemplateElement.prototype.content
访问)存储在与主
文档
以外的其他
文档相关联的
文档片段

所以,因为
temp.content.ownerDocument!=文档
,这是可以的:

<template id="templ">
  <script>console.error('This does not execute!');</script>
</template>
换句话说,
脚本
仍然是主
文档
的一部分, 这通常意味着它会执行

规范解释了通过以下途径访问的
DocumentFragment
.content
,它没有说明这个具体的,实例化的
实例,其关联的
文档
是主
文档
但不执行

规范是否确切地解释了为什么这个
不是 执行?如果它确实属于某个组织,它如何被排除在执行之外
文档


(我意识到不执行脚本很有用。这是一个 关于规范的问题,而不是关于
或 浏览器中的行为是否合适。)

嗯,在
模板上有一个元素描述:

注意:模板提供了一种方法,用于声明惰性DOM子树,并对其进行操作,以实例化具有相同内容的文档片段

(我的重点)然后在以下段落(我的重点)中对其进行相当详细的阐述:

文档文档的适当模板内容所有者文档是通过以下算法返回的文档:

  • 如果文档不是通过此算法创建的文档,请运行以下子步骤:

  • 如果文档还没有关联的惰性模板文档,则运行以下子步骤:

  • 让新文档成为新文档(没有浏览上下文)。出于上述步骤的目的,这是“由该算法创建的文档”

  • 如果文档是HTML文档,则将新文档也标记为HTML文档

  • 让单据关联的惰性模板单据成为新单据

  • 将文档设置为文档的关联惰性模板文档

  • 退货单


  • 在多个地方提到惰性,谈论它如何作为一个不同的文档存在。这可能是我的问题所允许的最接近的答案。我所做的关于
    temp.children
    的断言实际上是不正确的,因为我的问题使用了一个用HTML创建的模板,但实际上我是说,如果你是用JS创建的,为什么不使用一个文档呢fragment@chiliNUT:对。我只是用JS来测试我对元素行为的理解。并且没有意识到动态创建时行为的不同。
    templ.children[0].tagName == 'script'
    templ.children[0].ownerDocument == document