Как я могу использовать элемент HTML5 canvas в IE?
Я пытаюсь использовать элемент HTML5 canvas для рисования некоторых дуг и кругов - это отлично работает в FF, но IE8, похоже, не поддерживает его.
теперь существуют библиотеки Javascript, которые, похоже, заставляют IE8 хорошо работать с Canvas. пример можно найти здесь.
Я прочитал весь их источник, но я не могу понять, как они делают холст работы с IE8. Может кто-нибудь пролить свет на используемый метод?
6 ответов:
страница использует excanvas - библиотека JS, которая имитирует элемент canvas с помощью средства визуализации VML IE.
обратите внимание, что в Internet Explorer 9, тег canvas поддерживается изначально! Смотрите MSDN docs для сведения...
вы можете попробовать fxCanvas: https://code.google.com/p/fxcanvas/
он реализует почти все Canvas API в flash shim.
вы можете использовать недавно выпущенный плагин Chrome Frame для IE, но для этого требуется, чтобы веб-сайт HTML 5 включал специальный мета-тег, который позволяет подключать плагин.
http://code.google.com/chrome/chromeframe/
Chrome Frame, похоже, использует Explore Canvas (excanvas.js).
В настоящее время ExplorerCanvas является единственным вариантом эмуляции HTML5 canvas для IE6, 7 и 8. Вы также правы насчет его производительности, которая довольно плохая.
Я нашел имитатор частиц, который проверяет разницу между истинной обработкой холста HTML5 в Google Chrome, Safari и Firefox, vs ExplorerCanvas в IE. Результаты показывают, что основные браузеры, которые поддерживают тег canvas, работают примерно в 20-30 раз быстрее, чем эмулируемый HTML5 в IE с помощью ExplorerCanvas.
Я сомневаюсь, что кто-то будет пытаться создать альтернативу, потому что 1) excanvas.js примерно так же чисто закодирован, как и он, и 2) когда IE9 будет выпущен, все основные браузеры, наконец, поддержат объект canvas. Надеюсь, мы получим IE9 в течение года
Эрик @ www.webkrunk.com
Если вам нужно использовать IE8, вы можете попробовать эту библиотеку JavaScript для векторной графики. Это похоже на решение несовместимости" canvas "и" SVG " IE8 одновременно.
Я просто попробовать его в пример и он работает правильно. Я не знаю, насколько разборчив исходный код, но я надеюсь, что это поможет вам. Как говорится на его сайте, библиотека совместима с очень старыми исследователями.
Рафаэль в настоящее время поддерживает Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ и Internet Explorer 6.0+.
Я только что использовал flashcanvas, и у меня это работает. Если вы столкнулись с проблемами, просто не забудьте прочитать предостережения и еще много чего. В частности, если вы создаете элементы canvas динамически, вам нужно инициализировать их явно:
if (typeof FlashCanvas != "undefined") { FlashCanvas.initElement(canvas); }