谷歌浏览器无法在新标签页中打开Blob文件

25

我在两个标签中有同一个 Blob URL。

其中一个标签带有target="_blank"以在新选项卡中打开链接,另一个标签用于下载。

"下载"没问题,但是“在新选项卡中打开”只在 Firefox 上有效。对于 Google Chrome,它会闪烁,点击链接后立即打开然后关闭。

<a id="view" href="" target="_blank">View Blob in new tab</a>
<a id="download" href="" download="abc.txt">Download Blob</a>
<script>
    $(function(){
        var myBlob = new Blob(['Hello, I am Blob content'], {type: 'text/plain'})
        var url = URL.createObjectURL(myBlob);
        $("a#view").attr("href", url);
        $("a#download").attr("href", url);
    });
</script>

这是一个Google Chrome的bug吗?(我的Chrome版本为:54.0.2840.99 x64)

这里有一个实时演示:

https://jsfiddle.net/fa0kstm5/


1
您提供的演示链接在我的Chrome浏览器上运行良好,这是新标签页链接:blob:https://fiddle.jshell.net/1ada3411-bfba-461d-83cf-ebfe301e02d8。请在Chrome版本58.0.3029.110上尝试。 - Deepa
1
在Chrome中对我来说运行良好 - 在新标签页中打开 - Pete
谢谢大家,我在其他电脑上进行了测试,很好。所以可能是我的电脑Chrome出了点问题。 - The Anh Nguyen
不,这最近也一直在我们这里发生。我们在进程开始时以编程方式打开一个新标签页,然后稍后将一个 Blob URL 设置给它。这在 Chrome 和 Firefox 中以前都可以正常工作,但现在只有在 Firefox 中才能正常工作。目前正在尝试找到解决方案,因为这会给我们的客户带来问题,我们不得不放弃 Blob 标签页,这使我们在所做的事情上更加灵活... - Chrysus
1
它在我的Chrome 61.0.3163.100 x64上无法工作,但是当我在jsfiddle上停止AdBlock时,它可以正常工作,就像@Raffi所说的那样。 - clabe45
1个回答

73
可能的原因是AdBlock。在StackOverflow上有一个讨论,链接在这里:在Chrome中打开blob objectURL
要禁用AdBlock,请单击您位置栏旁边的AdBlock图标,然后选择“不在此页面运行”或“不在此域中运行”。

4
谢谢,我尝试禁用此页面的广告拦截器然后重试了一下,现在可以了。 - The Anh Nguyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接