2013-03-29 3 views
0

Je suis nouveau à la pile sur le flux; mais ont trouvé beaucoup de sujets abordés ici très utile dans le développement d'applications web.JavaScript Canvas problème dans FireFox, fonctionne très bien dans Chrome

Cependant, cette fois, je suis perplexe. J'ai écrit quelques fonctions simples en JavaScript pour ajouter une fonction annuler/refaire lors de l'utilisation de la nouvelle toile HTML5. Le code que j'ai écrit fonctionne bien dans Chrome, mais dans Firefox ne fonctionne pas; Je pense que j'ai isolé le problème à la ligne de code où je place un objet image dans un tableau (fonctionne bien dans Chrome). J'ai fait des recherches et je n'ai trouvé aucune raison pour que cela ne fonctionne pas dans FireFox. Toute aide serait grandement appréciée.

function push() 
{ 
window.cStep++; 
    if (window.cStep < window.history.length) { window.history.length = window.cStep; } 
var imageData = window.context.getImageData(0, 0, canvas.width, canvas.height); 
alert(imageData); 
window.history[window.cStep] = imageData; 
    document.title = "Step [" +window.cStep + "] Of A Possible [" + (window.history.length -1) + "]"; 
} 

function undo() 
{ 
    if (window.cStep > 0) { 
    window.cStep--; 
    window.context.putImageData(window.history[window.cStep], 0, 0); 
    document.title = "Step [" +window.cStep + "] Of A Possible [" + (window.history.length -1) + "]"; 
    if(window.cStep ==0) 
    {document.getElementById('middle_centre_canvas').style.opacity = 0.6;} 
    else 
    {document.getElementById('middle_centre_canvas').style.opacity = 1;} 
    } 
    } 
    function redo() 
    { 
    if (window.cStep < window.history.length-1) { 
    window.cStep++; 
    window.context.putImageData(window.history[window.cStep],0,0); 
    document.title = "Step [" +window.cStep + "] Of A Possible [" + (window.history.length -1) + "]"; 
    if(window.cStep >0) 
    {document.getElementById('middle_centre_canvas').style.opacity = 1;} 
    } 
    } 
     function loadyLoader(){ 
    window.canvas = document.getElementById("canvas"); 
    window.context = window.canvas.getContext('2d'); 
    window.history = new Array(); 
    window.cStep = -1; 
    push(); 
     } 

Répondre

0

window.history est un objet réservé: http://www.w3schools.com/jsref/obj_history.asp. Essayez de remplacer toutes les occurrences window.history avec window._history (ou un autre nom).

+0

Je ne peux pas le croire - exactement cela, fonctionne bien maintenant, merci! Celui-ci m'a fait perplexe pendant des heures ainsi lol. – Trobi

Questions connexes