我有一个显示一些静态文件供下载的应用程序。此应用程序创建一个隐藏的 iframe 并将源设置为 file-url。
浏览器显示另存为对话框。
但在 Microsoft Office 中,没有另存为对话框,也没有开始下载文件。
该文件随Content-Disposition: Attachment
. 工作解决方案将简单地打开一个新的浏览器实例并触发文件下载。我不想打开一个获得焦点的新窗口。
<!DOCTYPE html>
<html>
<head>
<script>
function di(){
document.getElementById("d").src="blob.dat";
}
</script>
<title>download</title>
</head>
<body>
<h1>file loading</h1>
<h2>works</h2>
<p>But opens a new window</p>
<a href="blob.dat" target="_blank"> a blank </a><br>
<a href="blob.dat" target="download"> named frame </a>
<h2>won't work</h2>
<a href="blob.dat"> a self </a><br>
<a href="blob.dat" target="_self"> a self </a><br>
<a href="blob.dat" target="_top"> a top </a><br>
<a href="#" onclick="di();"> iframe </a><br><br>
<iframe id="d"></iframe>
</body>
</html>
我认为这是一个严重的错误,如果 Web 应用程序无法跟踪链接。