2012-03-18 107 views
2

基本上,我想將頁面的某個DOM元素保存爲圖像,並將其存儲在服務器上(並允許用戶將圖像保存到本地磁盤)。我認爲目前做到這一點的唯一方法是渲染一個畫布,它允許我通過AJAX發送圖像數據,並在DOM中製作圖像元素。我發現這是一個promising library,但是我的DOM元素具有將css3轉換的元素渲染爲canvas/image

  1. 多個透明背景
  2. CSS 3D tranforms

而且html2canvas只是失敗在那裏。目前有什麼方法可以整齊地保存一個DOM元素的當前狀態的圖像表示,其所有的CSS3榮耀?

+0

我經歷了這個有前途的圖書館,文獻和例子,甚至下載了它。發現頁面被html2canvas.Preload(element,options)轉換爲dom;但如何觸發屏幕截圖以及如何保存它? – 2012-04-02 10:08:28

回答

3

瀏覽器可能永遠不會允許將DOM元素真實地呈現爲與畫布相同,因爲在能夠這樣做時存在非常嚴重的安全問題。

最好的選擇是html2canvas加上你自己的黑客。您可能只需要以自定義的方式實現您自己的渲染代碼。多個背景應該可以通過drawImage調用來實現,並且當canvas 2D獲得setTransform()(我認爲它只在下一個版本的規範中)時,您可能能夠在css3中進行變換。

1

在這個CSS3開發和交叉瀏覽器支持階段,這可能不可能沒有你自己的html2canvas擴展。

您可以嘗試挖掘Google Chrome bug報告,因爲它們允許您發送網頁的當前快照。但我認爲這是一些內部函數,在JS api中不可用。

此外,我認爲這可能很容易被濫用於監視用戶,所以不要指望從瀏覽器開發團隊獲得官方支持。