2009-08-26 14 views
74

Estoy tratando de usar el elemento canvas de HTML5 para dibujar algunos arcos y círculos, esto funciona perfectamente en FF pero IE8 no parece ser compatible.¿Cómo puedo usar el elemento canvas de HTML5 en IE?

Ahora, existen bibliotecas de Javascript que parecen hacer que IE8 funcione bien con Canvas. An example can be found here.

He leído su fuente completa, pero no puedo entender cómo hacen que Canvas funcione con IE8. ¿Puede alguien arrojar algo de luz sobre el método utilizado?

Respuesta

94

La página está usando excanvas - una biblioteca JS que simula el elemento canvas utilizando el renderizador VML de IE.

Tenga en cuenta que en Internet Explorer 9, the canvas tag is supported natively! Consulte MSDN docs para obtener detalles ...

+0

Ok lo tengo, gracias :) –

+35

+1 para la implementación de Google de canvas para IE. Es triste ver a terceros arreglar las limitaciones en su navegador :) –

4

Puede usar el complemento Chrome Frame recientemente lanzado para IE, pero requiere que el sitio web HTML 5 incluya la metaetiqueta especial que habilita el complemento.

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

Chrome Frame parece utilizar Explora lienzo (excanvas.js).

2

Actualmente, ExplorerCanvas es la única opción para emular el lienzo HTML5 para IE6, 7 y 8. También tiene razón en cuanto a su rendimiento, que es bastante pobre.

Encontré un simulador de partículas que compara la diferencia entre el verdadero manejo de canvas HTML5 en Google Chrome, Safari y Firefox, frente a ExplorerCanvas en IE. Los resultados muestran que los principales navegadores compatibles con la etiqueta canvas se ejecutan entre 20 y 30 veces más rápido que el HTML5 emulado en IE con ExplorerCanvas.

Dudo que alguien vaya a través del esfuerzo de crear una alternativa porque 1) excanvas.js está lo más limpio posible y 2) cuando se lanza IE9, todos los principales navegadores finalmente admitirán el objeto canvas. Con suerte, conseguiremos IE9 dentro de un año

Eric @ www.webkrunk.com

+0

¿Alguien puede decirme qué se entiende por "lento"? ¿Quiere decir que el navegador deja de responder con frecuencia, algo así como colgar, o es que las páginas tardan mucho tiempo en cargarse porque cada página tiene que cargar el archivo 'excanvas.js' que es bastante pesado (¿verdad?)? – SexyBeast

+0

excanvas.js no es demasiado grande. El problema es más acerca de la posible velocidad de fotogramas máxima en la animación basada en lienzo. – nullability

8

Usted puede intentar fxCanvas: https://code.google.com/p/fxcanvas/

Implementa casi todas API lienzo dentro de cuña flash.

+1

Esto obtiene mi voto debido a la actuación abominable de excanvas. La biblioteca tiene algunos problemas, pero en mis pruebas del mundo real salió por delante de flashcanvas en términos de rendimiento y estabilidad. – Aaronaught

+0

¿Hay una nueva versión de esto? El enlace está roto – Colbs

+0

https://code.google.com/p/fxcanvas/ IE 5.5+ excepto IE 9. – Stefan

0

Acabo de usar flashcanvas, y lo conseguí. Si tiene problemas, solo asegúrese de leer las advertencias y otras cosas. En particular, si se crea dinámicamente elementos canvas, es necesario inicializar explícitamente:

if (typeof FlashCanvas != "undefined") { 
    FlashCanvas.initElement(canvas); 
} 
2

Si es necesario utilizar Internet Explorer 8, puede probar esta biblioteca JavaScript para gráficos vectoriales. Es como resolver las incompatibilidades "canvas" y "SVG" de IE8 al mismo tiempo.

Raphaël

Acabo de probarlo en un ejemplo rápido y funciona correctamente. No sé cuán legible es el código fuente, pero espero que lo ayude. Como dijeron en su sitio, la biblioteca es compatible con exploradores muy antiguos.

Raphaël actualmente es compatible con Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ e Internet Explorer 6.0+.