2015-10-15 45 views
15

This simple code works perfectly everywhere except Microsoft Edge:數據URI鏈接<a href="data: doesn't work in Microsoft Edge

<a href="data:text/plain;charset=utf-8,Test">link</a> 

[JSFiddle]

在微軟邊緣我得到「這很奇怪......微軟無法找到此頁」錯誤:從Mozilla documentation

enter image description here

例子也不會與工作相同的結果。

這裏有一個從邊緣控制檯輸出:打開一個新的窗口邊緣時出現

這個錯誤,在新標籤頁的時候請輸入data:text/plain;charset=utf-8,Test作爲搜索查詢的默認搜索引擎。

這似乎是微軟邊緣沒有定義data:

有誰知道解決這個?


更新:遺憾的是,似乎沒有辦法在IE /邊緣鏈接上使用的數據URI。我在鏈接中創建了有關檢測數據URI支持的相關問題:Detect data URI in links support with Modernizr

+0

我做了一些進一步的測試,似乎就像從來沒有數據的定義一樣:在Internet Explorer中最有可能不會在MS Edge中測試,然後回溯到Internet Explorer 9,相反,數據一直存在定義:在Chrome中,測試回到Chrome 1.0 – 2015-10-17 20:24:19

+0

它適用於圖像嗎?使用base64加載的圖像是否在Microsoft-Edge中加載? – lilezek

+6

http://caniuse.com/#feat=datauri – CBroe

回答

5

IE和Microsoft Edge都不支持導航到數據URI。 MSDN聲稱這是for security reasons

唯一的解決方案是使用支持的方案(如file://或http://)將某個方案鏈接到某個包含該內容的資源。有趣的是,舊版本的IE(我說的比6更早)支持about:URI方案中的數據URI的先驅,儘管只有HTML被這種方式支持。這些URI現在不再有效,只是重定向到「取消導航」(以前稱爲「取消操作」)。

+0

「用於安全原因「 - 這解釋了所有:)感謝您的鏈接,我已經問了另一個關於檢測的問題是鏈接中的數據URI在瀏覽器中支持:http://stackoverflow.com/q/33197625/1331425也許你可以幫助那。謝謝! –

+0

這個問題引發了Spartan Uservoice的「主意」:https://windows.uservoice.com/forums/285214-microsoft-edge/suggestions/10261974-support-data-uri-protocol – myf

+0

@myf:仍然希望斯巴達超過只是一個代號。感謝您發佈該建議。 – BoltClock

2

由於IE和邊緣做支持<img>標籤與數據URI作爲源,你可以使用JavaScript編寫的文檔胡編亂造一個鏈接的圖像:

<a href="javascript:document.write('<img src=data:image/png;base64,iVBORw0KGgoAA 
AANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0l 
EQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6 
P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC />')">link</a> 
+0

這很好。但不能用於下載帶有「下載」attr標籤的圖片。 – hhzhu