2016-03-20 23 views
2
` arasında

, bu kod ile bir TypeError olsun:`canvas.getContext ('2d')` döner `Nesnesi` yerine CanvasRenderingContext2D`

var canvas = document.createElement('canvas'); 
var context = canvas.getContext('2d'); 
context.drawImage(...) // TypeError here for Phantom 

Krom 47 ve Firefox 43, context numaralı CanvasRenderingContext2D türünü iade ediyor.

Link to GitHub issue

+1

tam olarak ancak bu durumda önemli görünmüyor, ben oluşturulan '

+0

ait argumanets ne koydun. – Conrad

+0

belki de başka bir yerde kullanılan değişkenin adı, "tuval" yerine "the_canvas_aaaaa" isimlendirmeye ne dersiniz? –

cevap

0

Sorunun bir web sayfasının bağlamı dışında bu kodu çalıştırdığınız olduğunu düşünüyorum.

şu pasajı

var webPage = require('webpage'); 
var page = webPage.create(); 

page.onConsoleMessage = function(msg) { 
    console.log('The web page said: ' + msg); 
}; 

page.open('http://phantomjs.org/', function(status) { 
    page.evaluateJavaScript(function() { 
     var canvas = document.createElement('canvas'); 
     var context = canvas.getContext('2d'); 
     console.log(canvas); 
     console.log(context); 
     console.log(typeof context.drawImage); 
    }); 
    phantom.exit(); 
}); 

PhantomJS bu komut çalıştıran çıkış çalışması gerekir;

The web page said: [object HTMLCanvasElement] 
The web page said: [object CanvasRenderingContext2D] 
The web page said: function