我使用 polyfill js,它允许为不支持它的浏览器处理标签。
jsfiddle 上的 polyfill 源代码
来源question
但我注意到在 IE 11 中,此 polyfill 无法与包含 <tr>
的模板一起使用和 <td>
标签
我在 jsfiddle 上的样本
问题是当我们尝试从模板标签节点获取子节点时
elPlate.childNodes
它返回除 <tr>
以外的所有内容和 <td>
children 好像里面没有这样的标签<template>
.
我错过了什么吗?此问题有任何解决方法吗?
P.S 由于缺乏声誉,我无法对源问题添加评论。对此感到抱歉。
最佳答案
发生这种情况是因为 <tr>
必须在 <table>
内为了成为有效的 HTML。在你的<template>
, 你指定了一个松散的 <tr>
没有 <table>
parent 。 IE 将此视为错误并将其从 DOM 中删除。因此,您的模板的 documentFragment
不包含 <tr>
和 <td>
.
不幸的事实是:IE 还没有为 HTML5 模板标签做好准备。微软可能需要很长时间才能实现它,而且现有的 IE 浏览器版本真的已经过时了。只有这样,我们才能可靠地开始使用 HTML5 模板标签。
解决方法是:不要使用 <template>
;使用 <script type="template">
探索模板解决方案反而。我相信他们应该工作得很好。一些流行的:
关于javascript - IE 11 的模板标签 polyfill - 不适用于表 tr 和 td,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384954/