Як я можу використовувати елемент полотна HTML5 в IE?


75

Я намагаюся використовувати елемент полотна HTML5, щоб намалювати деякі дуги та кола - це чудово працює у FF, але IE8, схоже, не підтримує його.

Зараз існують бібліотеки Javascript, які, здається, змушують IE8 добре працювати з Canvas. Приклад можна знайти тут .

Я прочитав ціле їх джерело, але не можу зрозуміти, як вони змушують Canvas працювати з IE8. Чи може хтось, будь ласка, пролити світло на використаний метод?

Відповіді:


95

Сторінка використовує excanvas - бібліотеку JS, яка імітує елемент полотна, використовуючи візуалізатор VML IE.

Зауважте, що в Internet Explorer 9 тег полотна підтримується спочатку ! Детальніше див. У документах MSDN ...


35
+1 за впровадження Google полотна для IE. Сумно бачити, як треті сторони виправляють обмеження у вашому браузері :)
Андерсон Імес,

8

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

Він реалізує майже всі Canvas API в межах флеш-шима.


1
Це отримує мій голос завдяки огидному виконанню екзанв. Бібліотека має кілька випусків, але в моїх реальних тестах вона випередила flashcanvas як з точки зору продуктивності, так і стабільності.
Aaronaught

Чи існує нова версія цього? Посилання розірвано
Колбс

4

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

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

Здається, Chrome Frame використовує Explore Canvas (excanvas.js).


2

На даний момент 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


Хто-небудь може сказати мені, що мається на увазі під словом "повільний"? Ви маєте на увазі, що браузер часто не реагує, дещо схожий на зависання, чи це те, що сторінки завантажуються довго, оскільки кожна сторінка повинна завантажувати excanvas.jsдосить важкий файл (чи не так?)?
SexyBeast

excanvas.js не надто великий. Питання більше стосується можливої ​​максимальної частоти кадрів у анімації на основі полотна.
визнання недійсним

2

Якщо вам потрібно використовувати IE8, ви можете спробувати цю бібліотеку JavaScript для векторної графіки. Це як одночасне вирішення несумісності IE8 "canvas" та "SVG".

Рафаель

Я просто спробував це на швидкому прикладі, і він працює правильно. Я не знаю, наскільки розбірливим є вихідний код, але, сподіваюся, він вам допоможе. Як вони сказали на своєму сайті, бібліотека сумісна з дуже старими дослідниками.

Наразі Raphaël підтримує Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ та Internet Explorer 6.0+.


0

Я просто використовував flashcanvas , і це мені вдалося. Якщо у вас виникають проблеми, просто переконайтеся, що прочитали застереження та інше. Зокрема, якщо ви динамічно створюєте елементи полотна, вам потрібно їх явно ініціалізувати:

if (typeof FlashCanvas != "undefined") {
    FlashCanvas.initElement(canvas);
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.