版本:
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();不能按预期工作。任何帮助表示赞赏。
答案 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