JSdom canvas-如何获取页面的屏幕截图?

时间:2018-12-10 19:05:22

标签: node.js canvas jsdom

版本:

node v8.11.4
"express": "^4.16.3",
"jsdom": "^11.3.0",
"request": "^2.88.0",

代码:

var express = require('express');
var app = express();
var router = express.Router();
var request = require('request');
var jsdom = require("jsdom/lib/old-api.js");

var page = request('https://www.ggole.com', function(err, resp, content) {
    jsdom.env(
    {
        html: content,
        done: function (err, window)
        {
            if (err) {console.log(err);}
            var document = window.document;
            document.body.appendChild(canvas);
            var data = canvas.toDataURL();
            window.close();
        }
    });
}

问题:

我想截取Google页面的屏幕截图。 JSdom有可能吗?页面的内容在canvas标记中,那么如何从中制作图片并将其发送给用户/进行编辑?

var data = canvas.toDataURL();不能按预期工作。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

可能已经晚了:) jsdom使用nodejs canvas作为外部依赖项 他们的文件说

  

画布支持jsdom包括使用canvas包来支持   使用canvas API扩展任何元素。为了使这项工作,   您需要将canvas作为依赖项包含在您的项目中,作为对等体   jsdom。如果jsdom可以找到canvas包,它将使用它,但是如果   它不存在,则元素的行为类似于。   从jsdom v13开始,需要使用canvas版本2.x。版本1.x是否   不再受支持

,您可以在此处找到有关如何使用画布的示例 https://www.npmjs.com/package/canvas