JSdom画布 - 如何截取页面的截图?

问题描述 投票:0回答:1

版本:

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();
        }
    });
}

问题:

我想截取谷歌页面的截图。这对JSdom有可能吗?页面内容在canvas标签中,如何从中制作图片并将其发送给用户/编辑?

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

node.js canvas jsdom
1个回答
0
投票

也许它已经晚了:) jsdom使用nodejs canvas作为他们的文档所说的外部依赖

Canvas支持jsdom支持使用canvas包来使用canvas API扩展任何元素。为了使这项工作,您需要将canvas作为依赖项包含在项目中,作为jsdom的同行。如果jsdom可以找到canvas包,它将使用它,但如果它不存在,那么元素将表现得像s。从jsdom v13开始,需要2.x版的canvas;版本1.x不再受支持

你可以在这里找到如何使用帆布https://www.npmjs.com/package/canvas的例子

© www.soinside.com 2019 - 2024. All rights reserved.