'canvas.getContext('2d')' 返回 'Object'

`canvas.getContext('2d')` returns `Object` instead of `CanvasRenderingContext2D`

本文关键字:返回 Object getContext canvas 2d      更新时间:2023-09-26

将 2.1.1 与 Karma 和 Jasmine 一起使用,我得到了以下代码的TypeError

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

Chrome 47 和 Firefox 43 返回 CanvasRenderingContext2D 类型的context .

链接到 GitHub 问题

我认为

问题是您在网页上下文之外运行该代码。

以下代码片段应该有效

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