我正在使用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重定向到表单的下一页。
这里有什么错误?
答案 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;
});
});