Window.Print()阻止其他谷歌浏览器标签

时间:2014-04-23 13:31:40

标签: c# javascript asp.net

我正在处理ASPx Web窗体页面,并且打印页面存在问题。

我有按钮'打印',它调用事件(打印方法):

private void MenuPrint_ItemClick(object sender, DevExpress.Web.ASPxMenu.MenuItemEventArgs e)
        {
Response.RedirectOn("Print.aspx", "_blank", "menubar=0,scrollbars=1,width=780,height=900,top=10");
        }

按下“打印”按钮后,它会打开新窗口“Print.aspx”,这是本页面上的内容:

protected void Page_Init(object sender, EventArgs e)
        {
            LoadData(); // generate print document
            Response.Write("<script language=javascript>window.print();</script>");
        }

现在问题出在了:

window.print();将打开谷歌浏览器打印菜单,它会阻止旧窗口(该窗口在哪里是'打印'按钮。issue image

当我通过单击[X]关闭Print.aspx时,List.aspx窗口仍将被阻止。当我按'Anuluj' - 这意味着取消然后按[X] List.aspx将不会被阻止。 Eveything会好的。

我做了一些研究,弄清楚没有更多选项来打印文档,我也无法处理'取消打印'按钮。

问题是如何避免那个块,也许我应该使用其他东西代替RedirectOn?

1 个答案:

答案 0 :(得分:4)

这似乎是Chrome 34的错误 - 这是您使用的Chrome版本吗? 这里有一个类似的问题:Javascript window.print() in chrome, closing new window or tab instead of cancelling print leaves javascript blocked in parent window。 到目前为止还没有解决方案。