单击文件链接时如何防止空白选项卡出现在Edge中

时间:2017-02-02 12:59:03

标签: html microsoft-edge

我有一个html页面,其中包含指向具有各种文件类型的文件的多个链接,例如pdf,csv和zip。根据可用的浏览器插件,其中一些文件可以由浏览器内联打开,而其他文件将被下载。

我不希望在当前标签中打开此类链接,因此每个链接都具有target="blank"属性。

这在大多数浏览器中都可以正常使用:

  • 当用户点击可以内联显示的文件的链接时,该文件会显示在新标签中。
  • 否则,只要文件开始下载,就会打开一个新标签并立即关闭 。用户保持在当前窗口中。

但是,在Microsoft Edge中,第二种情况不起作用:新选项卡保持打开状态。这很烦人,因为用户现在正在查看无用的空标签。

有没有办法防止这种情况发生?

2 个答案:

答案 0 :(得分:5)

我认为没有什么可以阻止Edge的这种行为。您可以做的是更改HTML标记。

idle3元素中使用download属性而不使用<a>属性。这样,浏览器将提示保存对话框,而不是打开新选项卡。

target

http://www.w3schools.com/tags/att_a_download.asp

在这种情况下,浏览器不会内嵌显示文件。

如果您仍希望您的客户能够内联查看文件,您可以检测客户端的浏览器;如果是Edge,则使用<a href="myfile" download>Download</a> 属性,如果不使用download属性。此外,您可以使用类似target的内容来检测可以内联显示的文件类型(请参阅https://developer.mozilla.org/en-US/docs/Web/API/NavigatorPlugins/mimeTypes)。

这是我从另一篇文章(How can I detect Internet Explorer (IE) and Microsoft Edge using JavaScript?

中获取的检测功能
navigator.mimetypes

保留function isEDGE(){ return /Edge\/\d./i.test(navigator.userAgent) } 代码中没有<a>target属性的代码。使用检测功能并确定正确的属性。

像这样:

download

注意: 我不确定边缘检测功能。

答案 1 :(得分:0)

方法1: 我建议您清除Microsoft Edge的“清除浏览数据”选项,并检查您是否遇到此问题。为此,请执行以下步骤。 单击Edge右上角的反馈图标旁边的“更多操作”图标。 选择设置,然后单击选择要清除的内容。 选中浏览历史记录,Cookie和已保存的网站数据以及缓存的数据和文件,然后单击清除。

方法2: 如果您使用任何代理连接,请尝试禁用代理连接并检查。 按照步骤禁用代理: 单击Internet Explorer右上角的“设置”图标。 单击“工具”按钮,然后单击“Internet选项”。  单击“连接”选项卡,然后单击“局域网设置”。 取消选中“LAN的代理服务器”旁边的框。 单击确定以保存设置并关闭窗口。 现在通过打开Edge来检查问题。