2

我需要做一个 iframe 的快照,但是 html2canvass 不这样做,这是众所周知的。

我试图通过myiframe.contentWindow.document.body元素将 iframe 的内容传递给 html2canvas 函数,只有当我的页面和 iframe 内的页面都在同一个域中时(安全原因),这才有效,但这正是我所需要的。

html2canvas(divToShare.contentWindow.document.body, {
    onrendered: function(canvas) {
        screenshot = canvas.toDataURL();
    }
};

但是现在问题来了....输出图像与预期的不太相似。按钮看起来像一个文本字段和其他奇怪的东西......一个例子:

原始页面的图像

在此处输入图像描述

这是来自 html2canvas、不同按钮和文本框的 png 结果,也没有背景。

在此处输入图像描述

我做错了吗?还是图像渲染器不完全相同是正常的?我只需要拍摄 iframe 的快照,如果您有其他方法可以做到这一点,我可以。

4

1 回答 1

1

也许是因为 html2canvas 只在用户端工作,而不是在服务器端工作。并且无法渲染 iframe 中页面的 CSS。

于 2014-01-08T00:24:11.980 回答