无法在模板中运行IIFE

时间:2017-04-29 16:15:24

标签: javascript html5 html5-template

我正在使用<template>元素,但其中的javascript代码无法运行。我正在使用IIFE让它立即运行但没有运气。

<div id="content">
  initial text
</div>

<template>
  <script>
    (function(){
        document.querySelector('#content').innerHTML = 'new text';
    })();
  </script>
</template>

1 个答案:

答案 0 :(得分:4)

模板内容不会呈现给DOM,因此脚本不会运行。

来自DOCS(第一段)的

  

HTML元素是一种用于保持客户端的机制   加载页面时不会呈现的内容但可以   随后在运行时使用JavaScript实例化。

修改
在您对如何运行代码发表评论后,有几种方法。简单的就是抓住它的内容并将其放入<div id="content"> initial text </div> <template> <script> (function(){ document.querySelector('#content').innerHTML = 'new text'; })(); </script> </template> <script> var content = document.querySelector('template').content; document.body.appendChild(content,true); </script>

&#13;
&#13;
{{1}}
&#13;
&#13;
&#13;