2016-03-20 5 views
2

Использование 2.1.1 с кармой и Жасмин, я получаю TypeError с этим кодом:`canvas.getContext ('2d')` возвращает `Object` вместо` CanvasRenderingContext2D`

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

Chrome 47 и Firefox 43 возвращают context типа CanvasRenderingContext2D.

Link to GitHub issue

+1

Что именно вы положили в argumanets из (...) – amanuel2

+0

Я рендеринга созданного ''

+0

Возможно, это имя переменной, которая используется где-то в другом месте, а как же назвать «the_canvas_aaaaa» вместо «холста»? –

ответ

0

Я думаю, что проблема в том, что вы используете этот код вне контекста веб-страницы.

Следующий фрагмент кода должен работать

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 является;

The web page said: [object HTMLCanvasElement] 
The web page said: [object CanvasRenderingContext2D] 
The web page said: function 
Смежные вопросы