2009-06-02 9 views
17

Solía ​​trabajar en un plugin jQuery llamado 'BeautyTips' y funcionaba muy bien. Pero, desde que instalé IE 8, este complemento deja de funcionar porque necesita Excanvas para que IE dibuje los vectores, las imágenes, etc.¿Es posible hacer que Excanvas funcione en IE 8?

He intentado descargar la versión más reciente de Excanvas, pero no funciona en absoluto. ..

+32

Todavía me sorprende que Microsoft haya sacado IE8 sin Canvas nativo. – Nosredna

Respuesta

10

intente añadir el elemento canvas al documento antes de inicializar usando 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); 
16

El nuevo modo de "estándares" de IE8 apaga algunas características no estándar. Entre ellos, VML, que es utilizado por excanvas. Acabo de configurar el modo IE7 'estándares', por lo que todavía funciona.

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 

Frustrante, pero no conozco ninguna ventaja presentada por IE8.

+0

Eso es bastante bueno. Cuando tuve que usar Canvas en IE8, lo tiré al modo de las peculiaridades, lo que me gustó. – Nosredna

+0

lo usó al principio, pero siguió teniendo muchos problemas en otras partes de la página. la configuración manual de la compatibilidad con IE7 fue la más fija, así que seguí buscando en Google hasta encontrar este elemento. en teoría, los IE futuros (¡Dios mío, no!) le permitirán elegir entre una amplia variedad de 'estándares', de versiones pasadas – Javier

+0

mmm, la última versión parece funcionar únicamente con el modo de compatibilidad, para mí también – Peanuts

2

¿Estás seguro de que tienes instalada la versión más reciente de excanvas.js? (lanzado en marzo de 2009, alojado en la nueva página del proyecto Google Code)

Utilicé el complemento de consejos de belleza en IE8 y AFAIK funcionó en modo nativo IE8.

+0

No lo hice No sé si hubo un nuevo excanvas. Gracias. – Nosredna

1

La última versión del complemento de bt me solucionó este problema.

+0

@jeff, intenté usar esa versión, pero no funcionó para mí. ¡Tuve que hacer otras cosas para que funcione! – AndreMiranda

+0

Estoy usando la versión más reciente pero tampoco funciona, eliminé mi caché pero aún nada. Algunas ideas ? – Peanuts

14

Sí, tengo excanvas trabajando en el modo de estándares IE8 (solo probado para el uso que requerimos). En la función CanvasRenderingContext2D_ I comentada la línea:

//el.style.overflow = 'hidden';//fix IE8

La anchura y la altura del objeto nodo EL se 0PX por 0px, por lo que no se establece el desbordamiento en Oculto hecho el elemento prestados visible.

Cambié el orden de la creación del canvasPieTimer un poco, para obtener el resultado deseado. Espero que esto sea útil.

+0

Parece que es aquí donde está el problema. Desactivar el desbordamiento para el elemento canvas que estaba usando solucionó el problema al depurar. – Ian

+0

+1 ¡Yo votaría esto más! Me salvó un gran dolor de cabeza de modo de compatibilidad !! –

+0

No es necesario desactivar el modo estándar: ¡usted es una leyenda! – bart

0

Al añadir una etiqueta de tela como una cadena de HTML con jQuery no funciona con la nueva versión de excanvas. Primero debe usar document.createElement ('canvas').

0

si alguien todavía tiene este problema: Beauty Tips versión 0.9.5 corrige este problema. Sin embargo, si usted tiene que utilizar la versión anterior (como a mí, ya que la nueva versión introduce un problema de consejos cerrarse prematuramente en mi página), se debe reemplazar la línea 530 con estas líneas:

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}); 

creo que sirve .

Cuestiones relacionadas