如何下载PDF到一个新的标签/窗口没有弹出阻止
How to download a PDF to a new tab/window without popup blocker?
我有以下服务调用从服务器下载文件。我现在有这样的功能,pdf文件会在一个新的标签/窗口中打开,任何其他类型的文档都会被下载。
我现在遇到的问题是PDF被弹出窗口拦截器阻止了。还有别的办法吗?
return formService.getForm(params)
.$promise
.then(response => {
var blob = new Blob([response.data], {
type: response.responseType
});
var fileUrl = (window.URL || window.webkitURL).createObjectURL(blob);
if (response.responseType === 'application/pdf') {
window.open(fileUrl);
} else {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none"
a.href = fileUrl;
a.download = formName;
a.target = "_blank";
a.click();
window.URL.revokeObjectURL(fileUrl);
}
})
.catch(error => {
console.error(`Error downloading form '${formName}' `, error);
});
我在另一个堆栈溢出帖子中找到了我的问题的答案。
窗口。打开的弹出窗口被阻止在点击事件
基本上,我在进行业务呼叫之前调用var newWindow = window.open();
,然后在成功回调时调用newWindow.location = fileUrl
。
相关文章:
- 窗口确认在 AJAX 帖子中打印 HTML 标签
- jQuery:添加和删除<br>标签,这取决于窗口宽度以及标签是否已经存在
- window.open 会打开一个新标签页,而不是一个新窗口(在 chrome 中)
- 无法使用 Chrome 扩展程序弹出窗口中的按钮打开新标签页
- 在扩展程序的弹出窗口中显示当前标签网址
- Javascript来跟踪点击是否打开了一个新的标签/窗口
- 如何在新标签/窗口中编写文本文档
- 不要打开新标签页、关闭标签页或关闭浏览器窗口
- .click() 事件,当“在新标签页/窗口中打开”时
- 弹出窗口.js 未在 Chrome 扩展程序中的 Popup 的头部标签中执行.html Popup
- 谷歌扩展:标签事件 - 更改窗口
- 弹出窗口中的槽线图具有重叠的轴标签
- 如何在新标签页或窗口中打开iframe链接
- 当 HTML 中的标签发生更改时,粘贴弹出窗口在 Safari(装有 iOS 8.0.2 的 iPad)中消失
- 窗口位置主题标签语法错误在问号后未读取
- 模式窗口上的标签标签不起作用
- 确认消息仅用于浏览器关闭.不是在窗口标签关闭的时候
- 谷歌新闻框,在新窗口/标签中打开新闻页面
- iPad Chrome -提交表单在新的窗口/标签不工作
- 跨窗口/标签在浏览器中使用JavaScript通知