JSdom canvas - как сделать скриншот страницы? - PullRequest
0 голосов
/ 10 декабря 2018

ВЕРСИИ:

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 голосов
/ 29 марта 2019

может быть уже поздно :) jsdom использует холст nodejs в качестве внешней зависимости, о которой говорится в их документации

Поддержка Canvas jsdom включает поддержку использования пакета canvas для расширения любых элементов с помощью API canvas.Чтобы это работало, вам нужно включить canvas в ваш проект как зависимость от jsdom.Если jsdom может найти пакет canvas, он будет его использовать, но если его нет, элементы будут вести себя как s.Начиная с jsdom v13, требуется версия 2.x canvas;версия 1.x больше не поддерживается

, и вы можете найти примеры использования canvas здесь https://www.npmjs.com/package/canvas

...