Как я могу использовать элемент HTML5 canvas в IE?


Я пытаюсь использовать элемент HTML5 canvas для рисования некоторых дуг и кругов - это отлично работает в FF, но IE8, похоже, не поддерживает его.

теперь существуют библиотеки Javascript, которые, похоже, заставляют IE8 хорошо работать с Canvas. пример можно найти здесь.

Я прочитал весь их источник, но я не могу понять, как они делают холст работы с IE8. Может кто-нибудь пролить свет на используемый метод?

6 75

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);
}