2012-10-09 36 views
4

我正在生成一個base64 gif,並試圖創建一個鏈接到一個新頁面來打開gif的全尺寸版本。這工作在鉻,但在IE中,只有img縮略圖顯示。當有人點擊IE中的鏈接時,會打開一個空白頁面。如何使用base64編碼方法在IE中創建鏈接?

有什麼想法?

感謝

馬特

echo '<a href="data:image/gif;base64,'. $data. '" target=_blank>'; 
echo '<img src="data:image/gif;base64,'. $data . '" width="200"/></a>'; 
+0

您正在使用什麼版本的IE? – Musa

+0

到目前爲止,我只使用IE 9.謝謝。 –

回答

4

根據this你不能使用數據URI在IE瀏覽器的導航。

  • 的Internet Explorer〜7版(Web流量的約5%,2011年9月),缺少技術支持。但是,這可以通過提供瀏覽器特定內容來克服。 [6]
  • Internet Explorer 8將數據URI限制爲最大長度爲32 KB。 (互聯網瀏覽器9不具有此限制)[4] [3]
  • 在IE 8和9個數據URI可以僅用於圖像的,但不能用於導航或Javascript生成文件下載。 [7]
+0

我曾經看過前兩項,但不是第三項。這將解釋它。感謝您指出了穆薩。 –

1

如果你使用Java,您將創建一個servlet解碼器。就像這樣:https://gist.github.com/sjpuas/6217394這工作我所有IE versiones

與jQuery更換網址相似圖片

if ($.browser.msie && $.browser.version == "6.0") { 
       $("img[src*=base64]").each(function (i, img) { 
        var base64 = $(img).attr("src").split("base64,")[1]; 
        var encoded = encodeURIComponent(base64); 
        $(img).attr("src", "/myApp/base64Servlet?base64=" + encoded); 
       }); 
      } 
+0

您是否認爲這也適用於pdf/docx文件? – MattPark

+0

@ khaki54是的,當然,在servlet中改變MIME類型 –

+0

這難道不會輕易擊中IE上2083個字符的最大URL長度嗎? – Danny

相關問題