Как стать автором
Обновить

Комментарии 6

======
В ходе работы появилась ситуация, которая требует динамического создания canvas’а. К сожалению, что-то типа document.createElement(‘canvas’); отказывалось работать в IE. И при вызове функции getContent, происходила ошибка.
======
Если скрипт, о котором идет речь, это excanvas.js от товарищей Emil A Eklund, Erik Arvidsson, Glen Murphy, то все что нужно сделать чтобы динамически созданные canvas заработали — это выполнить инициализацию: G_vmlCanvasManager.initElement
напирмер так:
=========
var cnv = document.createElement('canvas')
document.getElementById('container').appendChild(cnv)
G_vmlCanvasManager.initElement(cnv)
=========
обязательно воткните свежесозданный нод canvas в дерево — для работы initElement нужен родитель элемента.

Кроме динамической инициализации канваса, автор хотел обратить внимание на то, что после создания нужно указывать размеры рабочей поверхности через стиль и через атрибут, иначе возможно, что в разных браузерах будет не правильно отображаться изображение. Например окружность может быть вытянута в эллипс…
А у меня такая вот ситуация образовалась:
Динамически создаю канвасы для отрисовки на них аналогов элементов area, которые в map используются.
И все бы ничего, но в IE элементы отрисовываются только на последнюю канву, в прочих браузерах все нормально.

Может сталкивался кто-нибудь с таким?
Для каждого канваса нужно использовать свой getContext(), быть может с этим проблема.
Дык там работа последовательно происходит. То есть взял картинку, создал для нее канву, пробежался по мапу, прорисовал на канву элементы, взял следующую картинку и т.д.
А инициализация канвы, на сколько я знаю, процесс не асинхронный…
Все разобрался :)
«ОБЯЗАТЕЛЬНО воткните свежесозданный нод canvas в дерево — для работы initElement нужен родитель элемента.»(с) :)
8 часов секса, а в итоге флип двух строчек :)

Ей-богу, на могиле IE напьюсь :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации