[英]How to show print dialog from javascript without getting “Page Unresponsive” warnings?
我有一個頁面,帶有一個簡單的“打印”圖像/鏈接,執行一個簡單的javascript onclick
處理程序。 我發現當我花費太長時間檢查打印對話框時,Chrome會抱怨頁面上出現“頁面無響應”警告。 我沒有在其他瀏覽器中看到此行為。
HTML看起來像這樣:
<a onclick="if(window.print) window.print(); return false;">
<img src="print-button.png" alt="[Print]" />
</a>
頁面上沒有其他活動腳本,所以我猜這個onclick
處理程序是問題所在。 我的猜測是Chrome在幕后做了類似的事情:
onclick
處理程序 onclick
處理程序 onclick
處理程序調用window.print()
(阻塞,等待用戶輸入) 我認為這是Chrome中的一個錯誤,如果是的話,因為window.print
調用不應該“定時”。 也就是說,它是一個阻止用戶交互的動作,並允許用戶花費他們需要的時間。
我這樣做曾經試過作弊:
<a onclick="if(window.print) setTimeout(function() { window.print(); }, 0); return false;">
<img src="print-button.png" alt="[Print]" />
</a>
...但它沒有改變任何東西 - Chrome仍然抱怨長期運行的腳本。
我使用錯誤的技術來觸發打印對話框嗎? 或者這是Chrome中的錯誤?
我在64位Mac上運行v72.0.3626.119並且我無法重現這一點,而我在64位Windows中運行相同版本的客戶端並且她正在報告此問題。
自2018年2月27日/ Chrome 64以來,這似乎是Chrome中的已知錯誤
Chrome 73有一個修復程序
https://bugs.chromium.org/p/chromium/issues/detail?id=816869
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.