2013-11-21 215 views
1

我需要做一个iframe的快照,但html2canvass不这样做,这是众所周知的。html2canvas,捕捉iframe的方法?

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

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

但是现在问题来了.... 输出的图像是不是很类似的期望。按钮看起来像一个文本框和其他奇怪的事情...... 个例:

原始页面

enter image description here

的图像,并且这是html2canvas,不同的按钮和文本框的PNG结果也没有背景。

enter image description here

难道我做错了什么?或者说图像渲染器不完全一样是正常的? 我只需要拍一个iframe的快照,如果你有另一种方法可以做到这一点,对我来说就没问题。

回答

0

也许是因为html2canvas只能在用户端而不在服务器端工作。而iframe中页面的CSS无法呈现。

+1

我知道你不能发表评论,但请避免张贴评论般的回答 – Markasoftware

+0

对不起,我是一个web开发和在stackoverflow的初学者。我怎样才能避免张贴评论般的答案?添加图片或代码或东西?请告诉我。如果你知道这个问题的答案,请告诉我。我不知道我的答案是否属实,但我真的很想知道真正的答案。非常感谢你。 – Yelen

+0

那么,StackOverflow上的答案应该完全回答这个问题。他们应该有一个明确的答案,提供清晰明了的解释/解决方案。评论用于讨论以帮助找出答案。例如,这个答案使用“可能”这样的词,这意味着你不确定答案,如果这实际上是问题。这属于评论。 – Markasoftware