1. 程式人生 > >chrome瀏覽器使用jqprint外掛列印時偶爾空白頁問題

chrome瀏覽器使用jqprint外掛列印時偶爾空白頁問題

  最近測試老是提bug說是有50%的概率打印出空白頁,之前我也一直髮現偶爾會出現這個問題,只是一直沒有發現原因。

今天終於下定決心找到問題所在。開始吧!

  檢視原始碼一行行debug,發現問題只可能出現在這一段。

setTimeout( function() { 
    (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); 
        if(tab){ 
            tab.close(); 
        } 
    }, 1000);

  這裡應該是等待為了等待渲染完成,所以延遲了1秒載入列印。但是很多情況下會發現渲染時間超過1秒的情況,這種時候就會打印出空白頁面。

  查詢網上的資料之後,想了個辦法解決 了這個問題。

var printObj=opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow;
        printObj.addEventListener('load', function() {
            printObj.print();
            if (tab) { tab.close(); }
        });

  我是js小白,如果有問題,歡迎指正。