我将使用http://cburgmer.github.io/rasterizeHTML.js/将HTML转换为画布。当我更改代码为:
var canvas = document.getElementById("save_image_canvas");
// rasterizeHTML.drawHTML('<div style="font-size: 20px;">Some <span style="color: green">HTML</span> with an image</div>', canvas);
rasterizeHTML.drawHTML(document.getElementById("mattes").innerHTML, canvas);
我在控制台中看到了以下错误:
由于文档的框架被沙盒化并且未设置“allow-scripts”权限,因此阻止在'Mysite/Custom_App/'中执行脚本。
所有脚本和内容都位于同一服务器上。
以下是完整函数:
function common_screenshot()
{
var canvas = document.getElementById("save_image_canvas");
if (typeof(moulding_canvas) === "undefined")
{
canvas.height = parseInt($("#matte_canvas").height());
canvas.width = parseInt($("#matte_canvas").width());
}
else
{
canvas.height = parseInt($("#moulding_canvas").height());
canvas.width = parseInt($("#moulding_canvas").width());
}
canvas.style.backgroundColor = "#FFFFFF";
var moulding_top = -1 * parseInt(document.getElementById("moulding_canvas").style.top);
var moulding_left = -1 * parseInt(document.getElementById("moulding_canvas").style.left);
console.log("top: " + moulding_top);
rasterizeHTML.drawHTML(document.getElementById("mattes").innerHTML).then(function (renderResult)
{
context.drawImage(renderResult.image, moulding_left, moulding_top);
});
var ctx = canvas.getContext('2d');
ctx.drawImage(matte_canvas, moulding_left, moulding_top);
if (typeof(moulding_canvas) !== "undefined")
{
ctx.drawImage(moulding_canvas, 0, 0);
}
var image = new Image();
image.src = canvas.toDataURL("image/jpeg");
return image;
}
使用rasterizeHTML生成的图像在屏幕上显示正常,但是当我调用canvas.toDataURL
时,生成的图像全部变成了黑色。