Javascript IE 11的模板标签polyfill-不适用于表tr和td
我使用polyfill js,它允许为不支持它的浏览器处理标记 polyfill的源代码 来源 但我注意到,在IE 11中,这种polyfill无法与包含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。在中,您指定了一个松散的
和
标记的模板一起工作
我的样品
问题是,当我们试图从模板标记节点获取子节点时
elPlate.childNodes
它返回除
和
子项以外的所有内容,就好像
中没有这样的标记一样
我错过什么了吗?这个问题有解决办法吗
p.S.I由于缺乏声誉,无法对来源问题添加评论。很抱歉。发生这种情况是因为
必须位于
中才能成为有效的HTML。在
中,您指定了一个松散的
,但它没有父级。IE将此视为错误,并将其从DOM中删除。因此,模板的文档片段
不包含
和
不幸的事实是:IE还没有为HTML5模板标签做好准备。微软可能要花很长时间才能实现它,而现有的IE浏览器版本也将真正过时。只有这样,我们才能可靠地开始使用HTML5模板标签
解决方法是:不要使用
;改为使用
探索模板解决方案。我相信他们应该工作得很好。一些流行的:
,你可以自己解决这个问题
您要做的不是将
直接放在模板中,而是像这样放在一个完整的表中
<template>
<table>
<tr>
//foo bar
</tr>
</table>
</template>
//富吧
这导致IE11不再“更正”HTML并按原样返回。一旦你从模板中克隆了HTML,你就可以从表中正确地提取
,并在需要的地方使用它。我也遇到了同样的问题,WebComponents polyfill上也有一个问题:你可以使用并显示:table(-cell)(当然它不是语义)。有趣的是,没有容器(- 或)的
- 可以工作。