如何在*打印文档后重定向到另一页*?

Chi*_*keh 1 javascript asp.net

我有一个叫做的活动SubmitResponse().

向用户呈现问题列表和可能的响应.完成响应后,用户单击"预览"按钮.如果响应正确,则用户单击SubmitResponse按钮然后对其进行SubmitResponse()处理.

单击SubmitResponse按钮后,将弹出一个打印屏幕供用户打印副本.这是JS打印功能的调用代码.

finsub.Attributes.Add("OnClick", "print_form()")
Run Code Online (Sandbox Code Playgroud)

工作正常,但有一个问题.我们希望用户可以通过以下代码重定向到显示他/她的回复结果的屏幕.

Response.Redirect("results.aspx")
Run Code Online (Sandbox Code Playgroud)

发生的事情是,一旦用户点击submitResponses按钮,他/她立即被重定向到results.aspx page该打印功能,并且打印功能不再可用.

有办法解决这个问题吗?

Kel*_*sey 10

您可以通过javascript进行打印和重定向.这是一个应该工作的例子:

function doPrint() {
    window.print();            
    document.location.href = "Somewhere.aspx"; 
}
Run Code Online (Sandbox Code Playgroud)

将其链接到Button:

<asp:Button ID="btnPrint" runat="server" Text="Print"
    OnClientClick="doPrint(); return false;" />
Run Code Online (Sandbox Code Playgroud)


Syn*_*noo 6

对于跨浏览器兼容性,您需要在window.print()调用和重定向之间引入延迟.

我发现以下效果很好(使用JQuery框架在加载后立即打印页面):

 <script type="text/javascript">
    $(document).ready(function () {
        window.print();
        setTimeout("closePrintView()", 3000);
    });
    function closePrintView() {
        document.location.href = 'somewhere.html';
    }
</script>
Run Code Online (Sandbox Code Playgroud)

这可以很容易地适应"打印"按钮和链接等.


rez*_*iee 6

您可以使用此代码:

window.print();
window.onafterprint = function(event) {
    window.location.href = 'index.php'
};
Run Code Online (Sandbox Code Playgroud)

使用 window.print() 回调!!