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

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

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

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

6 ответов

Решение

Страница использует excanvas - библиотеку JS, которая имитирует элемент canvas с помощью IE VML-рендера.

Обратите внимание, что в Internet Explorer 9 тег canvas поддерживается изначально! Посмотрите MSDN документы для деталей...

Вы можете попробовать 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, по сравнению с ExplorerCanvas в IE. Результаты показывают, что основные браузеры, которые поддерживают тег canvas, работают примерно в 20-30 раз быстрее, чем эмулированный HTML5 в IE с ExplorerCanvas.

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

Эрик @ www.webkrunk.com

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

Рафаель

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

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

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

if (typeof FlashCanvas != "undefined") {
    FlashCanvas.initElement(canvas);
}
Другие вопросы по тегам