打印页面后不重定向

时间:2014-05-07 18:04:39

标签: javascript jquery html printing

我正在使用Stack Overflow上另一篇文章中的代码。

How to I redirect to another page *after* printing document?

页面给了我一个解决方案,写了

window.location.href = "";

window.print();方法之后编写。所以我做了。以下是我的代码

$('.start-printing').click(function () {
   event.preventDefault();
   window.print();
   var url = window.location.href;
   var formId = url.split('/')[4];
   var newPage = "";
   if (url.split('/')[3] == 'form') {
       newPage = 'form_2';
   } else if (url.split('/')[3] == 'form') {
       newPage = 'form_2';
   } else if (url.split('/')[3] == 'form_2') {
       newPage = 'form_3';
   } else if (url.split('/')[3] == 'form_3') {
       newPage = 'form_4';
   } else if (url.split('/')[3] == 'form_4') {
       newPage = 'form_5';
   }
   url = url + newPage + formId;
});

我正在使用锚标记来完成这项工作。但我阻止了它的默认行为。你可以在第一行看到。

这是HTML

<a href="~/#startPrinting" class="start-printing">START PRINTING</a>

当我点击它时,它确实允许我打印文档。我可以看到Chrome的“打印”弹出窗口,然后点击打印按钮。但在那之后,它实际上并没有将我重定向到任何地方。

我已经尝试在控制台中观察并试图找到问题所在的位置。但我无法找到问题。

我也在制作一个逻辑,根据页面的当前URL重定向到表单的下一页。

这里有什么错误?

1 个答案:

答案 0 :(得分:0)

通过使用event.preventDefault(),您可以禁止锚标记自然地执行它想要做的事情,这是您与另一个资源的超链接。因此,您不会被重定向到您想要的位置。

那说,为什么不添加一些额外的Javascript来执行点击功能底部的重定向?

http://www.tutorialspoint.com/javascript/javascript_page_redirect.htm

$(document).ready(function () {
    $('.start-printing').click(function () {
        event.preventDefault();
        window.print();
        var url = window.location.href;
        var formId = url.split('/')[4];
        var newPage = "";
        if (url.split('/')[3] == 'form') {
            newPage = 'form_2';
        } else if (url.split('/')[3] == 'form') {
            newPage = 'form_2';
        } else if (url.split('/')[3] == 'form_2') {
            newPage = 'form_3';
        } else if (url.split('/')[3] == 'form_3') {
            newPage = 'form_4';
        } else if (url.split('/')[3] == 'form_4') {
            newPage = 'form_5';
        }
        url = url + newPage + formId;
        window.location = url;
    });
});