問題是新的內容不會打印(更多的元素)。關於新增加的HTML的Javascript window.print()問題
當用戶點擊我的打印鏈接時,我會在window.print()被調用之前在文檔中添加更多html。
我使用ajax在打印之前爲書籍獲取更多章節。
代碼:
打印初始化:
var afterPrint = function() {
var timer = setInterval(function() {
afterContentPrint(); // Cleanup html (restore to initial state)
clearInterval(timer);
}, 900);
}
//window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
事件打印點擊:
$("#print-test").click(function (e) {
e.preventDefault();
beforeContentPrint(); // ajax call for additional content, finishing by calling window.print()
});
在功能beforeContentPrint():
var jqxhr = $.ajax({
type: "GET",
url: bookURL,
success: function(data) {
.....
.....
$(article).each(function() {
parent.append(article);
});
},
complete: function() {
var timer = setInterval(function() {
window.print();
}, 900);
}
}
新的內容明顯增加到HTML文件,所以它應該工作。但是隻有最初的內容(在Ajax調用之前)纔會被打印出來。
此解決方案適用於IE和Firefox(onbeforeprint和onafterprint)。
使用window.matchMedia('print')似乎在Chrome中使用此邏輯可以正常工作。
是否通過Ctrl + P打印預覽或打印輸出所有頁面? – user568109