Шаблон 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 снова тормозит современную веб-разработку.