JavaScript弹出窗口被浏览器关闭

时间:2019-09-17 19:42:59

标签: javascript

我有一个包含12个屏幕的调查问卷,我们要求每年完成营业地点。当他们按下按钮以在最后一页上提交调查问卷时,将加载一个页面以完成提交并将企业位置标记为已完成。然后,他们会收到一个JavaScript确认框,询问是否要提供所提交信息的PDF。如果他们指示这样做,则会打开一个新的浏览器窗口以交付报告。窗口一打开,浏览器就会自动关闭窗口。如何编码新的窗口请求,以使浏览器不会关闭窗口。我已经阅读了有关内置弹出窗口阻止程序以及如何禁用它们的信息,但我不想告诉人们禁用内置弹出窗口阻止程序的浏览器,因为其中一些人对技术的了解并不深,可能会迷路。

我已经尝试过在Google上进行研究,但没有发现任何问题。我还在不同的浏览器中测试了该站点,发现IE实际上提供了该报告,而Firefox和chrome没有。

   <script>
    YN = confirm("would you like a PDF copy of the information you submitted?")
    if (YN == true) {
        loc = "reportviewer.aspx";
        mywin = window.open(loc); //popup
        window.location = "page12.aspx"; //main window
    }
    else {
        window.location = "page12.aspx";
    }
    </script>

我希望浏览器打开新窗口,加载“ reportviewer.aspx”,该调用调用传递所需参数的报告。而是在浏览器打开后关闭窗口。

2 个答案:

答案 0 :(得分:0)

我的猜测是这是弹出式阻止程序,与这两个操作有关。尝试延迟第二个操作,看看窗口是否保持打开状态。

if (YN == true) {
  loc = "reportviewer.aspx";
  mywin = window.open(loc); //popup
  window.setTimeout( function () {
    window.location = "page12.aspx"; //main window
  }, 100)
}

答案 1 :(得分:0)

我最后要做的是自从浏览器关闭窗口以来就废弃了JavaScript新窗口调用,因为用户不执行任何操作来获取窗口,并且内置的弹出窗口阻止程序认为窗口内容不安全。我最终在提交调查后在第12页上创建了一个链接。该链接会在新窗口中触发reportviewer.aspx(target =“ _ blank”)。该页面仅使用.net代码将浏览器重定向到报表。这样,用户就不会看到传递给报表的参数,而只是获取报表。现在,我要弄清楚如何在不提示输入凭据的情况下获取报告。