Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 IE 11的模板标签polyfill-不适用于表tr和td_Javascript_Html_Templates_Polyfills_Html5 Template - Fatal编程技术网

Javascript IE 11的模板标签polyfill-不适用于表tr和td

Javascript IE 11的模板标签polyfill-不适用于表tr和td,javascript,html,templates,polyfills,html5-template,Javascript,Html,Templates,Polyfills,Html5 Template,我使用polyfill js,它允许为不支持它的浏览器处理标记 polyfill的源代码 来源 但我注意到,在IE 11中,这种polyfill无法与包含和标记的模板一起工作 我的样品 问题是,当我们试图从模板标记节点获取子节点时 elPlate.childNodes 它返回除和子项以外的所有内容,就好像中没有这样的标记一样 我错过什么了吗?这个问题有解决办法吗 p.S.I由于缺乏声誉,无法对来源问题添加评论。很抱歉。发生这种情况是因为必须位于中才能成为有效的HTML。在中,您指定了一个松散的

我使用polyfill js,它允许为不支持它的浏览器处理标记

polyfill的源代码

来源

但我注意到,在IE 11中,这种polyfill无法与包含
标记的模板一起工作

我的样品

问题是,当我们试图从模板标记节点获取子节点时

elPlate.childNodes
它返回除
子项以外的所有内容,就好像
中没有这样的标记一样

我错过什么了吗?这个问题有解决办法吗


p.S.I由于缺乏声誉,无法对来源问题添加评论。很抱歉。

发生这种情况是因为
必须位于
中才能成为有效的HTML。在
中,您指定了一个松散的
,但它没有父级。IE将此视为错误,并将其从DOM中删除。因此,模板的
文档片段
不包含

不幸的事实是:IE还没有为HTML5模板标签做好准备。微软可能要花很长时间才能实现它,而现有的IE浏览器版本也将真正过时。只有这样,我们才能可靠地开始使用HTML5模板标签

解决方法是:不要使用
;改为使用
探索模板解决方案。我相信他们应该工作得很好。一些流行的:


如果你真的想在IE11的模板中使用
,你可以自己解决这个问题

您要做的不是将
直接放在模板中,而是像这样放在一个完整的表中

<template>
   <table>
      <tr>
         //foo bar
      </tr>
   </table>
</template>

//富吧

这导致IE11不再“更正”HTML并按原样返回。一旦你从模板中克隆了HTML,你就可以从表中正确地提取
,并在需要的地方使用它。

我也遇到了同样的问题,WebComponents polyfill上也有一个问题:你可以使用并显示:table(-cell)(当然它不是语义)。有趣的是,没有容器(
    或)的
  • 可以工作。