我在 HTML5 中制作了一个模板,该模板适用于 Chrome 和 Firefox,但不适用于 Internet Explorer(在 IE 8 上测试)。
我怎么解决这个问题?
我在 HTML5 中制作了一个模板,该模板适用于 Chrome 和 Firefox,但不适用于 Internet Explorer(在 IE 8 上测试)。
我怎么解决这个问题?
只需将“显示:无”添加到您的模板中。适用于即 11
<template id="fancyTemplate" style="display:none"></template>
我推荐你 Neovov 的 polyfill: https ://github.com/neovov/template-element-polyfill
注意:IE 11 中有一个错误:它在渲染 DOM 之前将 <template> 移动到 <body> 元素下!所以parentNode属性不对,嵌套就会失败。您可以在 [F12] 工具中看到它。
获取html4shiv的副本,并在 IE 小于 9 的地方使用它:
<!--[if lt IE 9]>
<link rel="stylesheet" href="styles/ie.css" type="text/css"> <script src="scripts/ie/html5shiv.min.js"></script>
<![endif]-->
您正在搜索html5shiv。
它“启用”所有 html5 元素,这些元素在旧 Internet Explorer 版本中不可用。
您可以使用 CSS 隐藏元素:template { display:none !important; }
如果您需要在其他浏览器中访问/克隆内容,请使用此 polyfill:https ://github.com/jeffcarp/template-polyfill
但请记住,
<template>
仍然可以在 DOM 中找到并执行 DOM 的内容——这正是标签的主要目标。没有任何 polyfill 可以阻止这种情况的发生,IE 再次拖慢了现代 Web 开发的速度。
您可以尝试将<template>
标签替换为<script>
<script id="fancyTemplate"></script>