Xiper

IE и динамическая вставка canvas

Автор: Евгений Рыжков Дата публикации:

Проблема

Браузеры IE6-8 нативно не поддерживают HTML5 элемент canvas. Для его эмуляции можно использовать библиотеку excanas. При динамической вставке canvas в IE может возникнуть ошибка "неизвестный объект" при попытке получения контекста.

Решение

Для старых IE перед получением контекста вызвать функцию G_vmlCanvasManager.initElement([canvas element]). В коде это может выглядеть примерно так:

var canvas = document.createElement("canvas"); // создаем элемент canvas
$("#parent").prepend(canvas); // вставляем canvas куда нужно. например, с помощью jQuery
if($.browser.msie && $.browser.version<9) { G_vmlCanvasManager.initElement(canvas); } // костыль для IE
var ctx = canvas.getContext("2d"); // инициализируем контекст

Материалы

  • Динамическое добавление Canvas