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

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

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

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

Ответ 2

Вы можете попробовать fxCanvas: https://code.google.com/p/fxcanvas/

Он реализует почти весь Canvas API в flash-режиме.

Ответ 3

Вы можете использовать недавно выпущенный плагин Chrome Frame для IE, но он требует, чтобы веб-сайт HTML 5 включал специальный метатег, который позволяет плагин.

http://code.google.com/chrome/chromeframe/

Chrome Frame, похоже, использует Explore Canvas (excanvas.js).

Ответ 4

В настоящее время ExplorerCanvas является единственным вариантом для эмуляции холста HTML5 для IE6, 7 и 8. Вы также правы в своей производительности, что довольно плохо.

Я нашел элемент simulatior, который сравнивает разницу между истинной обработкой холста HTML5 в Google Chrome, Safari и Firefox, а также ExplorerCanvas в IE. Результаты показывают, что основные браузеры, поддерживающие тег canvas, работают примерно в 20-30 раз быстрее, чем эмулированный HTML5 в IE с помощью ExplorerCanvas.

Я сомневаюсь, что кто-то попытается создать альтернативу, потому что 1) excanvas.js примерно так же закодирован, как и он, и 2) когда IE9 выпущен, все основные браузеры, наконец, будут поддерживать объект canvas. Надеюсь, мы получим IE9 в течение года

Эрик @www.webkrunk.com

Ответ 5

Если вам нужно использовать IE8, вы можете попробовать эту библиотеку JavaScript для векторной графики. Это похоже на решение "несовместимости" и "SVG" несовместимости IE8 одновременно.

Raphaël

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

В настоящее время Raphaël поддерживает Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ и Internet Explorer 6.0 +.

Ответ 6

Я просто использовал flashcanvas, и я получил эту работу. Если вы столкнулись с проблемами, просто убедитесь, что прочитали оговорки и еще много чего. В частности, если вы создаете элементы холста динамически, вам нужно их явно инициализировать:

if (typeof FlashCanvas != "undefined") {
    FlashCanvas.initElement(canvas);
}