版本:
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();没有按预期工作。任何帮助表示赞赏。
也许它已经晚了:) 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的例子