11

我在 HTML5 中制作了一个模板,该模板适用于 Chrome 和 Firefox,但不适用于 Internet Explorer(在 IE 8 上测试)。

我怎么解决这个问题?

4

6 回答 6

8

只需将“显示:无”添加到您的模板中。适用于即 11

<template id="fancyTemplate" style="display:none"></template>
于 2017-08-14T18:30:48.840 回答
7

我推荐你 Neovov 的 polyfill: https ://github.com/neovov/template-element-polyfill

注意:IE 11 中有一个错误:它在渲染 DOM 之前将 <template> 移动到 <body> 元素下!所以parentNode属性不对,嵌套就会失败。您可以在 [F12] 工具中看到它。

于 2015-04-21T14:34:37.010 回答
3

获取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]-->
于 2014-03-06T11:24:28.723 回答
2

您正在搜索html5shiv

“启用”所有 html5 元素,这些元素在旧 Internet Explorer 版本中不可用。

于 2014-03-06T11:23:29.050 回答
1

您可以使用 CSS 隐藏元素:template { display:none !important; }

如果您需要在其他浏览器中访问/克隆内容,请使用此 polyfill:https ://github.com/jeffcarp/template-polyfill

但请记住,<template>仍然可以在 DOM 中找到并执行 DOM 的内容——这正是标签的主要目标。没有任何 polyfill 可以阻止这种情况的发生,IE 再次拖慢了现代 Web 开发的速度。

于 2019-05-28T11:34:55.940 回答
1

您可以尝试将<template>标签替换为<script>

<script id="fancyTemplate"></script>
于 2018-10-11T13:42:39.860 回答