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

时间:2012-01-03 23:39:49

标签: 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 scrollbars=yes status=yes'
               );
}

现在我的应用程序运行正常,单击报告链接时,它会打开一个新窗口,我可以查看我的pdf。但是,当我关闭pdf报告窗口并再次单击链接以生成报告时,它会打开一个新窗口(没有pdf)。这个新窗口看起来不像一个空白窗口,因为背景不是白色,而是看起来浏览器的pdf插件识别它是pdf,因为我可以看到灰色背景,但我无法查看文档。

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

1 个答案:

答案 0 :(得分:2)

我的猜测是它的某种缓存问题。无论是缓存窗口本身,还是URL的结果,我都无法分析它。我会尝试两件事,用随机名称命名窗口,每次点击它都会改变,所以而不是'_blank'使用(new Date()).toString()(或类似我没有测试过)。要尝试的第二件事是确保URL每次都是唯一的,以避免在那里缓存,因此选择报告系统未使用的查询字符串变量,并在每次点击时更改该变量。 + 'version='+(new Date()).toString()

如果你点击它两次这个jquery弹出窗口代码是有效的,那么有助于确定哪些有效,哪些无效http://swip.codylindley.com/popupWindowDemo.html

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

希望这给出了一个起点 - 遗憾的是,如果不能重现问题,很难给出确切的答案。