2012-11-20 79 views
1

我試圖設置pdf打開和打印功能在pdf文件上被調用的時間之間的延遲。目前沒有任何反應,但如果我將打印功能移到setTimeout之外,它將調用打印功能,但這不是我想要的,因爲它太快而且pdf尚未加載。當我將警報置於setTimeout中時,它們在指定的3秒內調用罰款。使用setTimeout的Javascript打印

var pdfWin = window.open(docPath); 
setTimeout(function() { 
    pdfWin.print(); 
},3000) 

我的問題是:爲什麼打印函數不被調用?

在此先感謝鉻

+4

你不應該爲此目的使用超時。由於用戶的互聯網速度和服務器的響應時間*會有所不同,因此無法預測下載文件所需的時間。您應該使用下載文件時觸發的事件處理程序。 – JCOC611

+0

我明白這一點,它不是最終的解決方案。我只是想在看到輸出之前,我轉向別的東西 –

回答

5
var pdfWin = window.open(docPath); 
pdfWin.onload = function() { 
    pdfWin.print(); 
}; 

工作正常,我。

由於same-origin policy,如果窗口與父窗口位於同一個域中,則只能在窗口上調用.print()。否則,我可以在我的頁面上打開你的臉書並在那裏提交一些表格; p

+0

很好用。非常感謝 –

+0

+1 - 很好的解決方案。也許對其他用戶說這很好,只有當'docPath'是一個位於同一個域的引用時纔會有效。否則'onload'不會啓動。 – insertusernamehere

+1

@insertusernamehere是的我現在增加了一個提及:) – Esailija