2012-12-19 13 views
5

Sono in una situazione in questo momento in cui ho bisogno di avere un codice complesso che funziona con Kinetic.js e un elemento canvas per funzionare su IE8.Un modo per fare in modo che Kinetic.js supporti IE8?

Ufficialmente, Kinetic.js non ha intenzione di supportare IE8.

Ho provato ad utilizzare webshims lib ma Kinetic.js fallisce il seguente codice:

Kinetic.Canvas = function(width, height) { 
    this.element = document.createElement('canvas'); 
    this.context = this.element.getContext('2d'); //<-- Error here 

    // set dimensions 
    this.element.width = width; 
    this.element.height = height; 
}; 

L'errore è "oggetto non supporta la proprietà o il metodo 'getContext'". Ha senso per me, dal momento che non mi aspetto che l'elemento canvas creato da un documento IE8 implementi i metodi per un elemento canvas, ma se l'elemento <canvas> fosse già stato creato, webshims avrebbe giocato e potresti usare i metodi. Tuttavia, forzare Kinetic.js a utilizzare un singolo elemento canvas interromperà alcune delle sue funzionalità (poiché crea al volo oggetti canvas).

Quali sono le mie opzioni per raggiungere questo obiettivo?

+0

Può essere Chrome Frame può aiutarti? http://www.google.com/chromeframe?quickenable=true – Flot2011

+0

@ Flot2011 È una possibilità, grazie. – Alpha

+1

Per le persone interessate a questo - http://fabricjs.com/ può essere la pena considerare. Supporta IE8 (anche se non ho testato quanto bene lo fa). Se non sei così pignolo sul fatto che sia Canvas o SVG, considera anche http://raphaeljs.com/ (il supporto per IE8 è buono per i vettori di base, ma spazzatura per il testo e qualsiasi cosa usi le immagini PNG come riempimenti) – user568458

risposta

3

La semplice risposta è "no".

Come un commentatore menzionato, Google Chrome Frame è un sostituto OK, che comporta essenzialmente l'installazione del motore di rendering di Chrome come plug-in di IE.

C'è the excanvas project, che potrebbe sembrare buono all'inizio. È stato un tentativo di implementare il canvas in VML (SVG) in modo che IE 6-8 potesse usare canvas.

Excanvas è orribile. Soprattutto con qualsiasi animazione, e non può fare qualcosa per manipolare le immagini su tela. E non è stato aggiornato in quasi 4 anni. Consiglio vivamente di non usarlo, ma è lì per la vostra considerazione.

+0

Grazie. Ho provato WebShims, FlashCanvas, ExCanvas e altre opzioni miste al mio fianco (anche rattoppando Kinetic.js) prima di tornare alla tua domanda. Niente ha funzionato per me, quindi accetterò la mia sconfitta. – Alpha

+0

È triste ma vero. Non supportare IE8 è l'unica opzione realistica se vuoi approfittare di tutto ciò che Canvas ha da offrire, come KineticJS –

Problemi correlati