2014-05-07 159 views
0

我正在使用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

通過使用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; 
    }); 
}); 
+0

即使在改變錨標記,一個span元素。它仍然不起作用! –

+0

嘗試按原樣留下錨標記,但只需將「window.location」代碼添加到點擊函數的最後。因此,單擊鏈接時,默認行爲被event.preventDefault()禁止,這非常好,然後通過window.print()發生打印任務。在此之後,你開始建立新的URL,它應該被傳遞給「window.location」。 window.location = url; – lux

+0

我正在嘗試。對於window.location,我有這個值'urlSplit [2] +'/'+ newPage +'/'+ formId',但它似乎沒有激活。任何猜測? –