Шаблон HTML5 не работает в Internet Explorer, как его решить?

Я создал шаблон в HTML5, который работает с Chrome и Firefox, но не работает с Internet Explorer (проверен на IE 8).

Как я могу решить эту проблему?

Ответ 1

Я рекомендую вам Neovov polyfill: https://github.com/neovov/template-element-polyfill

NB: В IE 11 есть ошибка: он перемещает <template> под элементом <body> перед визуализацией DOM! Таким образом, атрибут parentNode ошибочен, и вложенность завершится неудачей. Вы можете увидеть его в инструменте [F12].

Ответ 2

просто добавьте "display: none" в свои шаблоны. Работает, например, 11

<template id="fancyTemplate" style="display:none"></template>

Ответ 3

Вы ищете html5shiv.

Он включает все элементы html5, которые недоступны в старых версиях Internet Explorer.

Ответ 4

Получите копию 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]-->

Ответ 5

Вы можете попробовать заменить <template> на <script>

<script id="fancyTemplate"></script>

Ответ 6

Вы можете скрыть элемент, используя CSS: template { display:none !important; } template { display:none !important; }

И если вам нужно получить доступ/клонировать контент, как это было изначально возможно в других браузерах, используйте этот polyfill: https://github.com/jeffcarp/template-polyfill

Но имейте в виду, что содержимое <template> все еще может быть найдено в DOM и выполняется - именно это и является главной целью тега. Никакой полифилл не может остановить это, IE снова тормозит современную веб-разработку.