2013-03-19 138 views
4

我有模式對話框,應該打印一些文本,並打印鏈接。所以當我按下打印時,需要大約30秒才能在chrome中打開預覽對話框(firefox,safari,即很好)。這是什麼原因?Chrome window.print()打開時間太長

對話框:

<div id="dialog"> 
    <div id="to_print_data"> 
    My data to print!!!!! 
    </div> 
    Click <a href="#" onclick="window.print(); return false;"> here</a> 
</div> 

    <style> 
    @media print { 
     body * { 
     visibility:hidden; 
     } 

    #to_print_data, #to_print_data * { 
     visibility:visible; 
     } 
     #to_print_data { 
     position:absolute; 
     left:0!important; 
     top:0!important; 
     border:0!important; 
     font-size:16px!important; 
     } 
    } 
    </style> 

UPDATE:

我找到了原因,在後臺運行一些腳本,使POST請求,並要求已暫停狀態約30秒,之後完成打印 - 對話出現。如何防止這種行爲,當打印等待發布請求完成時,不刪除腳本?

+1

可能是針對Chrome的您的特定情況下(太多擴展加載或東西)。如果您在隱身模式下嘗試,會發生什麼情況? – 2013-03-19 13:12:21

+0

如果使用chrome,請使用開發人員工具下的網絡面板查看哪些資源導致加載過程中的延遲。 – blackhawk 2013-03-19 13:12:32

+0

@RobGrzyb版本是版本25.0.1364.172米;並且所有擴展都被禁用 – Sergey 2013-03-19 13:13:27

回答

3

我找到了原因。如果在後臺運行某個擴展程序,則發出發佈請求。這個請求有待處理狀態約30秒。只有在完成打印對話框後纔會出現。所以未決請求塊打印對話框中打開

0

在我的情況下,它甚至不會打印在所有,直到我刷新頁面,如下所述:Chrome: window.print() print dialogue opens only after page reload (javascript)

@ noypiscripter的回答解決了這個問題對我來說:

function printPage() { 
    window.print(); 

    //workaround for Chrome bug - https://code.google.com/p/chromium/issues/detail?id=141633 
    if (window.stop) { 
     location.reload(); //triggering unload (e.g. reloading the page) makes the print dialog appear 
     window.stop(); //immediately stop reloading 
    } 
    return false; 
}