Hyperlink 数据URI链接<;a href=";数据:不';我不能在微软的边缘工作

Hyperlink 数据URI链接<;a href=";数据:不';我不能在微软的边缘工作,hyperlink,data-uri,microsoft-edge,Hyperlink,Data Uri,Microsoft Edge,除Microsoft Edge外,此简单代码在任何地方都能完美运行: <a href="data:text/plain;charset=utf-8,Test">link</a> 在Microsoft Edge中,我收到“这很奇怪…Microsoft找不到此页面”错误: 来自的示例也不适用于相同的结果 以下是边缘控制台的输出: 当打开一个新的边缘窗口时,在新的选项卡上输入数据:text/plain;charset=utf-8,测试作为默认搜索引擎的搜索查询 Mi

除Microsoft Edge外,此简单代码在任何地方都能完美运行:

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

在Microsoft Edge中,我收到“这很奇怪…Microsoft找不到此页面”错误:

来自的示例也不适用于相同的结果

以下是边缘控制台的输出:

当打开一个新的边缘窗口时,在新的选项卡上输入
数据:text/plain;charset=utf-8,测试
作为默认搜索引擎的搜索查询

Microsoft Edge似乎没有定义
数据:

有人知道这个问题的解决办法吗



更新:不幸的是,似乎无法在IE/Edge中的链接中使用数据URI。我提出了一个关于在链接中检测数据URI支持的相关问题:

自2020年起,新的基于Chromium的Microsoft Edge与其他基于Chromium的浏览器一样,支持在地址栏中导航到数据URI。IE和Microsoft Edge Legacy都不支持此功能;MSDN声称这是一个错误

对于较旧的Microsoft浏览器,唯一的解决方案是使用受支持的方案(如file://或http://)链接到包含内容的某些资源


非常有趣的是,IE的最老版本(我说的是早于6的版本)在about:URI方案中支持数据URI的前身,尽管只有HTML是以这种方式支持的。这些URI现在不再工作,只需重定向到“导航已取消”(以前的“操作已取消”),或者,对于新的Microsoft Edge,它们被视为无效的Edge://URI。

因为IE和Edge确实支持以数据URI为源的
标记,您可以使用javascript伪造图像链接以写入文档:


您可以尝试使用下载IE/Edge中的数据URI:

var a=document.getElementsByTagName('a')[0];
a、 addEventListener('click',函数(e){
if(navigator.msSaveBlob){
var bytes=atob(a.href.split(',)[1]),数组=[];
对于(vari=0;i
我做了一些进一步的测试,似乎从来没有对数据进行过定义:在internet explorer中,所以很可能不在MS Edge中,测试回到internet explorer 9,相反,数据一直有一个定义:在chrome中,测试回到chrome 1.0它对图像有效吗?使用base64编写的图像是否加载到Microsoft Edge中?@lilezek image使用base64编写的图像在tag中工作,但在“出于安全原因”中仍然不工作,这说明了一切:)感谢该链接,我问了另一个关于检测浏览器是否支持链接中的数据URI的问题:也许您可以提供帮助。非常感谢。为这个问题提出了斯巴达用户之声的“想法:@myf:仍然希望斯巴达不仅仅是一个代号。谢谢你的建议。这很好。但下载href标签中带有“download”attr的图像不起作用。这让我走上了正确的方向。我最终完全避免了链接,只调用navigator.msSaveBlob(newblob([content],{mime:type}),filename);
<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>