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

How to prevent a blank tab from appearing in Edge when clicking on a file link

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

我不希望在当前选项卡中打开这样的 link,所以每个都有属性 target="blank"

这在大多数浏览器中工作正常:

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

有什么办法可以防止这种情况发生吗?

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

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

我认为您无法阻止 Edge 的这种行为。您可以做的是更改 HTML 标签。

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

<a href="myfile" download>Download</a>

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

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

如果您仍然希望您的客户能够看到内联文件,您可以检测客户的浏览器;如果是 Edge 则使用 download 属性,如果不是则使用 target 属性。此外,您可以使用 navigator.mimetypes 之类的东西来检测哪些文件类型可以内联显示(请参阅 https://developer.mozilla.org/en-US/docs/Web/API/NavigatorPlugins/mimeTypes)。

这是我从另一个 post ()

中获取的检测函数
function isEDGE(){
 return /Edge\/\d./i.test(navigator.userAgent)
}

让您的 <a> 标签没有 targetdownload 属性。使用检测功能并确定正确的属性。

像这样:

$(document).ready(function(){
    if(isEDGE()) {
        $('a').attr('download','download');
    } else {
        $('a').attr('target','_blank');
    }
})

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