Можно ли заставить Excanvas работать в IE 8?
Я работал над плагином jQuery под названием "BeautyTips", и он работал отлично. Но, поскольку я установил IE 8, этот плагин перестает работать, потому что ему нужен Excanvas, чтобы IE рисовал векторы, изображения и т.д.
Я попытался загрузить более новую версию Excanvas, но она не работает вообще...
Ответы
Ответ 1
Попробуйте добавить элемент canvas в документ перед его инициализацией с помощью excanvas:
var foo = document.getElementById("targetElementID");
var canvas = document.createElement('canvas');
canvas.setAttribute("width", 620);
canvas.setAttribute("height", 310);
canvas.setAttribute("class", "mapping");
foo.appendChild(canvas);
canvas = G_vmlCanvasManager.initElement(canvas);
Ответ 2
Новый режим "стандартов" IE8 отключает некоторые нестандартные функции. Среди них VML, который используется excanvas. Я просто установил режим IE7 "стандарты", поэтому он все еще работает.
<meta http-equiv="X-UA-Compatible" content="IE=7" />
Разочарование, но я не знаю никаких преимуществ, поднятых IE8.
Ответ 3
Да, у меня есть excanvas, работающий в режиме стандартов IE8 (только для тестирования, который нам нужен). В функции CanvasRenderingContext2D _ я прокомментировал строку:
//el.style.overflow = 'hidden';//fix IE8
Ширина и высота объекта el node составляла 0px на 0px, поэтому не устанавливая переполнение в скрытое, сделанный визуализированный элемент видимым.
Я немного изменил порядок создания canvasPieTimer, чтобы получить требуемый результат. Надеюсь, это будет полезно.
Ответ 4
Вы уверены, что установлена самая последняя версия excanvas.js? (выпущен в марте 2009 года, размещен на новой странице проекта Google Code)
Я использовал плагин Beauty Tips в IE8 и AFAIK, который работал в основном режиме IE8.
Ответ 5
Последняя версия плагина bt исправляет эту проблему для меня.
Ответ 6
Добавление тега canvas в виде строки html с jquery не работает с новой версией excanvas. Сначала вы должны использовать document.createElement('canvas').
Ответ 7
если у кого еще есть эта проблема:
Советы по красоте версии 0.9.5 устраняет эту проблему. однако, если вам нужно использовать более раннюю версию (например, я делаю, так как новая версия ввела вопрос о том, что чаты закрыты преждевременно на моей странице)
вы должны заменить строку 530 следующими строками:
var canvas = document.createElement('canvas');
$(canvas).attr('width', (numb($text.btOuterWidth(true)) + opts.strokeWidth*2)).attr('height', (numb($text.outerHeight(true)) + opts.strokeWidth*2)).appendTo($box).css({position: 'absolute', top: $text.btPosition().top, left: $text.btPosition().left, zIndex: opts.boxzIndex});
надеюсь, что это поможет.