Javascript `getContext(';2d';)`返回'Object',而不是'canvasrendingcontext2d'`

Javascript `getContext(';2d';)`返回'Object',而不是'canvasrendingcontext2d'`,javascript,html5-canvas,jasmine,phantomjs,karma-jasmine,Javascript,Html5 Canvas,Jasmine,Phantomjs,Karma Jasmine,使用2.1.1和Karma和Jasmine,我得到了一个TypeError: var canvas=document.createElement('canvas'); var context=canvas.getContext('2d'); context.drawImage(…)//Phantom的类型错误 Chrome 47和Firefox 43正在返回类型为CanvasRenderingContext2D的上下文 我认为问题在于您在网页上下文之外运行代码 下面的代码段应该可以工作 var

使用2.1.1和Karma和Jasmine,我得到了一个
TypeError

var canvas=document.createElement('canvas');
var context=canvas.getContext('2d');
context.drawImage(…)//Phantom的类型错误
Chrome 47和Firefox 43正在返回类型为CanvasRenderingContext2D的
上下文


我认为问题在于您在网页上下文之外运行代码

下面的代码段应该可以工作

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

你在(…)的参数中到底放了什么?我正在渲染一个已创建的
,但在本例中它似乎并不重要。可能是在其他地方使用的变量的名称,将其命名为“canvas”而不是“canvas”如何?