我有一个应用程序可以显示一些静态文件以供下载。该应用程序创建了一个隐藏的iframe并将源设置为文件URL。
浏览器会显示一个另存为对话框。
但是,在Microsoft Office中没有另存为对话框,文件下载也不会开始。
该文件使用“Content-Disposition:Attachment”提供服务。有效的解决方案是打开一个新的浏览器实例并触发文件下载。我不想打开一个新窗口,因为那样会获得焦点。
浏览器会显示一个另存为对话框。
但是,在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应用程序无法跟随链接,这是一个严重的漏洞。