Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多次单击时,window.open()不会打开_Javascript_Asp.net_Html_Jsp_Pdf - Fatal编程技术网

Javascript 多次单击时,window.open()不会打开

Javascript 多次单击时,window.open()不会打开,javascript,asp.net,html,jsp,pdf,Javascript,Asp.net,Html,Jsp,Pdf,在我的JSP应用程序中,我有一个打开新窗口的javascript函数。reportURL是对生成pdf文件的asp应用程序的调用。因此,如果您调用该asp页面,它将生成pdf数据 我拥有的javascript是: function openReport(id) { window.open('<%=reportUrl%>&id='+id, '_blank', 'width=900 height=900 sc

在我的JSP应用程序中,我有一个打开新窗口的javascript函数。reportURL是对生成pdf文件的asp应用程序的调用。因此,如果您调用该asp页面,它将生成pdf数据

我拥有的javascript是:

function openReport(id)
{
    window.open('<%=reportUrl%>&id='+id,
                '_blank',
                'width=900 height=900 scrollbars=yes status=yes'
               );
}
函数openReport(id)
{
window.open('&id='+id,
"空白",,
'宽度=900高度=900滚动条=是状态=是'
);
}
现在,我的应用程序运行良好,当单击报告链接时,它会打开一个新窗口,我可以查看我的pdf。但是,当我关闭pdf报告窗口并再次单击链接以生成报告时,会打开一个新窗口(没有pdf)。这个新窗口看起来不像一个空白窗口,因为背景不是白色的,它看起来像浏览器的pdf插件识别它是pdf,因为我可以看到灰色背景,但我无法查看文档


有人能告诉我问题出在哪里吗?

我猜这是某种缓存问题。无论是缓存窗口本身,还是URL的结果,我都无法不进行调查就知道。我会尝试做两件事,用一个随机名称命名窗口,每次单击它时都会更改,因此不要使用“\u blank”(新日期()).toString()(或类似名称,我没有测试过)。第二件要尝试的事情是确保URL每次都是唯一的,以避免缓存在那里,因此请选择报表系统未使用的querystring变量,并在每次单击时更改该变量,例如
+'version='+(new Date()).toString()

如果您单击两次,jquery弹出窗口代码就可以工作,因此可以帮助您确定哪些有效,哪些无效

事实上,你可以进行自己的测试,将弹出窗口中的URL更改为常规网站,看看它是如何工作的,如果它正常工作,你知道它是内容而不是窗口


希望这能提供一个起点-不幸的是,如果不能够重现问题,就很难给出准确的答案。

听起来可能是特定于浏览器的问题,您测试过不同的浏览器吗?这是相同的结果吗?不,我正在处理一个只在IE上运行的遗留JSP代码,所以很遗憾,我无法在其他浏览器上测试这一点。。有解决方法吗?在我看来,当url打开时,您可能正在动态生成报告?如果这是真的,它的后端代码是什么样子的?它是否可能只生成一次报告,而后续加载不会生成完整的新报告?您可以使用fiddler()检查是否打开/请求了正确的URL。通过复制/粘贴URL在其他浏览器中进行测试。首先检查复制/粘贴到IE中是否会出现与您的问题相同的问题,然后查看在其他浏览器中是否相同。PDF会引起一些奇怪的问题,我对IE的信任甚至比我对Adobe PDF插件的信任还要少。。无论我打开多少次和多少个窗口,在IE中复制粘贴URL都有效。问题只是当我尝试通过window.open()命令打开它时@PriorityMark,是的,我正在尝试动态生成报告。后端代码从JSP应用程序获取一些参数并生成PDF。如果我尝试复制粘贴URL,效果很好,所以问题在于窗口。在IE中打开…+1非常感谢您的努力和建议。。事实上,每次请求报告时,我都会尝试更改URL,但它不会显示内容。因此,一旦报表窗口关闭,浏览器就不会打开任何PDF报表链接(来自我的JSP应用程序)。。如果我在一个单独的选项卡上打开一些随机的pdf URL,它会正确加载文件,现在我甚至可以生成我以前的报告(但只有一次)。。还有什么我可以试试的吗?你有没有试过每次给新窗口一个随机的新名字?