Как я могу использовать элемент HTML5 canvas в IE? - PullRequest
75 голосов
/ 26 августа 2009

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

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

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

Ответы [ 6 ]

94 голосов
/ 26 августа 2009

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

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

8 голосов
/ 06 февраля 2011

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

Он реализует почти все Canvas API в пределах Flash Shim.

4 голосов
/ 02 октября 2009

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

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

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

2 голосов
/ 14 ноября 2013

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

Рафаель

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

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

2 голосов
/ 13 мая 2010

В настоящее время ExplorerCanvas является единственным вариантом для эмуляции холста HTML5 для 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

0 голосов
/ 23 августа 2012

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

if (typeof FlashCanvas != "undefined") {
    FlashCanvas.initElement(canvas);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...