2015-10-15 33 views
15

This simple code works perfectly everywhere except Microsoft Edge:dữ liệu URI liên kết <a href="data: doesn't work in Microsoft Edge

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

[JSFiddle]

Trong Microsoft Edge tôi nhận được "Đó là lẻ ... Microsoft không thể tìm thấy trang này" lỗi:

enter image description here

Ví dụ từ Mozilla documentation cũng không làm việc với cùng một kết quả.

Dưới đây là đầu ra từ cạnh giao diện điều khiển:

Lỗi này xảy ra khi mở một cửa sổ cạnh mới, trên các tab mới nó đầu vào data:text/plain;charset=utf-8,Test như truy vấn tìm kiếm vào công cụ tìm kiếm mặc định.

Nó có vẻ như Microsoft Edge không có định nghĩa cho data:

Có ai biết một giải pháp cho điều này?


Cập nhật: không may, có vẻ như không có cách nào để sử dụng dữ liệu URI trong các liên kết trong IE/Edge. Tôi đã tạo câu hỏi liên quan về việc phát hiện hỗ trợ URI dữ liệu trong các liên kết: Detect data URI in links support with Modernizr

+0

tôi đã làm một số thử nghiệm thêm nữa và có vẻ như như không bao giờ có định nghĩa về dữ liệu: trong internet explorer vì vậy hầu như không có trong MS Edge, kiểm tra lại Internet explorer 9, ngược lại luôn có định nghĩa về dữ liệu: trong chrome, được thử nghiệm trở lại chrome 1.0 –

+0

Tính năng này có hoạt động cho hình ảnh không? Có phải một hình ảnh được viết bằng tải base64 trong Microsoft-Edge không? – lilezek

+6

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

Trả lời

5

Cả IE lẫn Microsoft Edge đều không hỗ trợ điều hướng đến URI dữ liệu. MSDN tuyên bố rằng đây là for security reasons.

Giải pháp duy nhất là liên kết, sử dụng lược đồ được hỗ trợ chẳng hạn như tệp: // hoặc http: //, đối với một số tài nguyên chứa nội dung.

Điều thú vị đủ, các phiên bản cũ hơn của IE (tôi đang nói lớn hơn 6) hỗ trợ tiền thân cho URI dữ liệu trong lược đồ about: URI, mặc dù chỉ HTML được hỗ trợ theo cách này. Các URI đó không còn hoạt động hôm nay và chỉ chuyển hướng đến "Điều hướng đã hủy" (trước đây là "Hành động bị hủy").

+0

"để bảo mật lý do "- điều đó giải thích tất cả :) Cảm ơn bạn đã liên kết, tôi đã hỏi một câu hỏi khác về phát hiện là URI dữ liệu trong liên kết được hỗ trợ trong trình duyệt: http://stackoverflow.com/q/33197625/1331425 có thể bạn có thể trợ giúp cái đó. Cảm ơn bạn! –

+0

Nâng cao Spartan Uservoice "ý tưởng" cho vấn đề này: https://windows.uservoice.com/forums/285214-microsoft-edge/suggestions/10261974-support-data-uri-protocol – myf

+0

@myf: Mong ước Spartan lớn hơn chỉ là một tên mã. Cảm ơn bạn đã đăng đề xuất. – BoltClock

2

Kể từ khi trình duyệt IE và Edge làm hỗ trợ <img> thẻ với một dữ liệu URI như nguồn, bạn có thể tin giờ chót một liên kết đến một hình ảnh sử dụng javascript để viết thư cho tài liệu:

<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

Điều này là tốt. Nhưng không hoạt động để tải xuống hình ảnh với phụ đề "tải xuống" trong thẻ href. – hhzhu

Các vấn đề liên quan