2010-07-18 75 views
2

我知道我們可以將圖像加載到畫布中,但是我想知道我們是否可以將簡單的HTML文件加載到畫布中。如果是,如何?如何將HTML文件加載到畫布中?

謝謝。

+0

什麼印刷品嗎?你在用什麼語言? – Mewp 2010-07-18 17:56:15

+0

爲了得到答案,嘗試添加更多信息。例如,編程語言...... – 2010-07-18 17:56:45

+2

@Mewp @AdrianFaciu使用JavaScript來討論HTML5畫布的可能性高達99%。 – mwcz 2011-05-26 16:01:04

回答

1

他在談論HTML5/Javascript。

如果不編寫自己的渲染引擎(使用Javascript),這是不可能的。

+0

@Mewp, HTNL和JavaScript和HTML5畫布。 – 2010-07-18 19:47:51

5
簡答:不,你不能。

長答案: 不可靠,但是,你可以在某些(可能是hackish)的方式。關鍵在於你定義的「圖像」。您知道,您可以使用drawImage()將圖像添加到畫布上 - 您可能沒有意識到的是「圖像」可能是什麼(不一定是實際圖像)。首先,「圖片」可以是HTML5視頻元素 - 因此您可以將視頻添加到畫布。其次,在大多數現代瀏覽器中,「圖像」可以是SVG文檔,其可以通過SVG <foreignObject>元素包含HTML。

瀏覽器支持:在drawImage()

  • SVG文件目前不支持在Firefox。 related bug is here和我認爲一個修復計劃。
  • <foreignObject>在大多數瀏覽器中都有問題 - Firefox(具有諷刺意味的是)似乎有最好的支持。

例子:

<svg xmlns="http://www.w3.org/2000/svg"> 
<foreignObject x="0" y="0" height="800" width="800"> 
    <body xmlns="http://www.w3.org/1999/xhtml"> 
    <p>Hello world!</p> 
    <input type="date"/> 
    </body> 
</foreignObject> 
</svg>

試裝即用帆布drawImage()在Opera文件 - 你會看到它的交互性是相當馬車,但它顯示的罰款。

+0

// browser = Firefox v3.66; os = crappy Vista //我們必須支持FF var canvas = document.getElementById('oneElement'); var ctx = canvas.getContext('2d'); var img = new Image(); ctx.drawImage(img,0,0,img.width,img.height); \t} \t img.src ='element1。HTML「; //結果 html文件沒有被加載到畫布 – 2010-07-18 19:43:23

+0

嘿唐唐 - 正如我在答案的第一行中說的「不可靠」 - 我不會推薦在任何生產站點執行此操作,只是通知您可能性。 – lucideer 2010-07-18 20:01:08

+0

好的。 你能看看另一個相關的問題嗎? http://stackoverflow.com/questions/3276131/how-to-convert-a-block-of-rendered-html-code-or-a-div-into-a-png 謝謝。 Don – 2010-07-18 20:58:16