gpt4 book ai didi

javascript - 从 Edge 打开 PDF,无需打开多余的空白选项卡

转载 作者:行者123 更新时间:2023-12-01 03:58:54 25 4
gpt4 key购买 nike

我正在处理的页面列出了文档。每个文档都是一个可点击的链接。单击打开 PDF(通常会在不同的选项卡中打开,甚至在不同的应用程序中打开,具体取决于用户的设置),然后重新加载原始选项卡,以便更新页面上的“未读”计数,并将链接样式更改为表示“已读”。

围绕文档详细信息的 HTML 范围:

<span class='btn-link' onclick='openReport(@orderNumber, @tableBodyId); return false;'>

Javascript:

function openReport(orderNumber, tableBodyId) {
var url = "/Reports/ValuationReportDocPdf?orderNumber=" + orderNumber;
var win = window.open(url, '');
setTimeout(function () { location.reload(); }, 3000);
}

Javascript 在 Chrome、Firefox 和 IE11 中按预期工作。

在 Edge 中,单击链接时,会打开一个空白选项卡并接收焦点,同时原始选项卡在选项卡栏上闪烁,等待我在“保存”、“另存为”和“取消”之间进行选择。因此,用户必须返回到原始选项卡才能继续。这是一个相当困惑的用户体验。然后,如果我单击“保存”,情况会变得更糟:打开包含 PDF 的第三个选项卡。

问题

如何让 Edge 流畅运行?我希望焦点保留在原始页面上,直到用户选择如何处理 PDF,然后打开 PDF,而不打开任何空选项卡。

编辑

This post似乎相关,但它使用 <a> 。我认为我不能使用 anchor ,因为我还需要刷新页面。

最佳答案

我找到了some help与这个。对于 Edge only ,我动态创建一个 <a>download属性,然后“单击”它。

function openReport(orderNumber, tableBodyId) {
var url = "/Reports/ValuationReportDocPdf?orderNumber=" + orderNumber;

if (isEDGE()) {
var dl = document.createElement('a');
dl.setAttribute('href', url);
dl.setAttribute('download', 'filename.txt');
dl.click();
} else {
window.open(url, '');
}

setTimeout(function () { location.reload(); }, 3000);
}

function isEDGE() {
return /Edge\/\d./i.test(navigator.userAgent);
}

关于javascript - 从 Edge 打开 PDF,无需打开多余的空白选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com