2013-11-21 219 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