我有一个html页面,其中包含指向具有各种文件类型的文件的多个链接,例如pdf,csv和zip。根据可用的浏览器插件,其中一些文件可以由浏览器内联打开,而其他文件将被下载。
我不希望在当前标签中打开此类链接,因此每个链接都具有target="blank"
属性。
这在大多数浏览器中都可以正常使用:
但是,在Microsoft Edge中,第二种情况不起作用:新选项卡保持打开状态。这很烦人,因为用户现在正在查看无用的空标签。
有没有办法防止这种情况发生?
答案 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来检查问题。