我管理一个 ASP.NET 站点,他们希望通过单击按钮打开多个报告(最好每个在其自己的选项卡中)。报告现在保存为 URL,所以我只需要使用这些 url 打开多个窗口。
我正在尝试使用javascript(即window.open)这样做。这是我正在做的一个例子(尽管我删除了实际的网址):
<html>
<body>
<button onclick="openLinks();return false;">Open both links</button>
<script type="text/javascript">
function openLinks(){
var FirstWindow = window.open('');
FirstWindow.location = 'https://myssrsReportURL/rs:Format=EXCEL';
window.open('https://myssrsReportURL/rs:Format=EXCEL');
}
</script>
</body>
</html>
上面 js 方法的前 2 行的优点是强制 url 在新选项卡中打开而不是在新窗口中打开。但是,在上面的示例中,当我在打开空白窗口后设置位置时,我收到文件下载错误 IE “阻止此站点下载”:
当第二个 url 打开时(在新窗口中)没有问题(我收到文件下载提示)。
为什么第二种方法有效(我收到文件下载提示),而第一种方法无效(我收到 IE 安全警告),如果他们打开相同的 url?有没有办法使用javascript(或jQuery)解决这个问题?
客户要求单击一个按钮即可打开所有这些报告。我不能在一个请求中将它们全部压缩,因为报告是由 SSRS 根据对特定 url 的获取请求(我试图在新选项卡中打开的那些)生成的。
请注意,问题不是“我如何打开多个选项卡”,这就是为什么 window.open('') 与 window.open('url') 之间存在行为差异的原因