我希望能夠輸出包含圖像的HTML文件(在文件本身內)。谷歌搜索,我遇到了幾個方法可以做到這一點:如何在HTML文件中編碼圖像數據?
-
- 數據URI如
<IMG SRC="data:image/gif;base64,[...]">
<object ... >
標籤(儘管使用數據URI,所以可以繼承相同限制)
但我不知道哪個更好的瀏覽器支持,或者如果有其他的選擇。
任何有這方面實踐經驗的人都可以給我建議嗎?謝謝。
我希望能夠輸出包含圖像的HTML文件(在文件本身內)。谷歌搜索,我遇到了幾個方法可以做到這一點:如何在HTML文件中編碼圖像數據?
<IMG SRC="data:image/gif;base64,[...]">
<object ... >
標籤(儘管使用數據URI,所以可以繼承相同限制)但我不知道哪個更好的瀏覽器支持,或者如果有其他的選擇。
任何有這方面實踐經驗的人都可以給我建議嗎?謝謝。
在關於瀏覽器的支持,從Wikipedia:
數據URI目前支持 以下Web瀏覽器:
IE不正確處理<object>
代碼,請參閱here更多細節內置支持的IE外殼瀏覽器。簡而言之,你不能相信IE來顯示圖像。
也沒有得到很好的支持,因爲它被用於很多跨站腳本攻擊。
關於web的this有很多討論,他們都得出結論,沒有好的通用方法來嵌入圖像。如果您只需要支持一部分瀏覽器,那麼數據uri可能會工作,或者是數據uri和javascript的組合。
這是否意味着您偏愛javascript:imageData方法?或者這兩種方法都有限制? – 2010-01-18 09:30:09
看到我上面的編輯 - javascript:imageData可能是最不可用的方法,因爲許多瀏覽器都是針對跨站點腳本攻擊的消除向量。 – jball 2010-01-18 09:32:38
謝謝,jball - Tarquin鏈接很有幫助。 – 2010-01-18 09:42:50
imageData更靈活,例如一些ie將數據限制爲32k。
數據URI方案的合理性很好的支持,除了在Internet Explorer版本8
的JavaScript的URI之前,我想,稍微好一點的支持,但如果JS是不可用的失敗。
您可以做的最好的事情是堅持外部圖像資源。
我是否應該提供這兩個選項,並對JS支持進行測試? – 2010-01-18 09:25:42
你不能。 img元素沒有對src屬性的回退支持,並且對象元素支持不良(特別是在Internet Explorer中) – Quentin 2010-01-18 09:43:05
數據URI在< IE8中不起作用。 IE8支持他們高達32KB。
另一個類似但不完全的HTML選項是MHTML。 http://en.wikipedia.org/wiki/MHTML – bobince 2010-01-18 16:04:41
MHTML不太受瀏覽器支持,但可以通過Microsoft Word讀取......也許值得思考。 – 2010-01-18 21:09:52