2014-04-04 64 views
0

上的css在主頁上,我嘗試打印一個彈出窗口。 在Chrome上它可以工作,但在Firefox中它不起作用,它忽略了css文件。Firefox在無限循環中掛起並忽略window.print()

在Firefox中,窗口正在載入內容,但我不知道它是什麼,因爲我無法打開螢火蟲。 格式化HTML看起來不錯,但打印機不能獲取css信息。 所以我雖然可以,因爲他加載了一些東西。

HTML+JS代碼(小提琴不允許document.write):

http://pastebin.com/QXASsTXg

popup.css

http://pastebin.com/HM6JEMnX

對不起引擎收錄,但代碼是爲大計算器。

Javascript Code

$(document).ready(function() { 

    $('.depart span').click(function(){ 

     //close all popups 
     $('.popup').hide(); 

     //open current popup 
     $(this).next().slideDown(); 
    }); 

    $('.close').click(function(){ 
    // close all popups  
     $('.popup').slideUp(); 

    }); 

    $('span.printbutton').click(function(){ 
    printPopup($(this)); 
    }); 
}); 
function printPopup(data){ 
    var popup = data.parent().parent().parent('div.popup'); 
    mywindow = window.open('', 'my div', 'height=600,width=420'); 
    mywindow.document.write('<html><head><title>Popup</title>'); 
    mywindow.document.write('<link rel="stylesheet" media="screen" href="popup.css" type="text/css" />'); 
    mywindow.document.write('<link rel="stylesheet" media="print" href="popup.css" type="text/css" />'); 

    mywindow.document.write('</head>') 
    mywindow.document.write('<body class="popupwindow">') 
    mywindow.document.write('<div class="popup">') 

    mywindow.document.write(popup.html()); 
    mywindow.document.write('</div>') 

    mywindow.document.write('</body></html>'); 
// mywindow.location.reload(); 
    mywindow.focus(); 
    mywindow.print(); 
    setTimeout('mywindow.close();', 5000); 

    return true; 
} 

希望有人能夠幫助。

編輯:一個新的提示發現,當彈出加載循環時,我不得不按下ESC鍵以取消循環,然後我可以按STRG + P,它工作正常。 哪裏可能是錯誤?

回答

0
Throurg Jquery Pull Css from That Printout Page 
INSTEAD OF : 
    mywindow.document.write('<link rel="stylesheet" media="screen" href="popup.css" type="text/css" />'); 
    mywindow.document.write('<link rel="stylesheet" media="print" href="popup.css" type="text/css" />'); 

    USE : $("#printoutpage").css(); 

See If It Works 
+0

彈出窗口看起來不錯,也是css信息。 唯一的問題是,打印機不能獲取信息。 – demonking

+0

Awwesssome @demonking – vijay

0

嘗試引用的絕對路徑CSS文件:

mywindow.document.write('<link rel="stylesheet" media="screen" href="\path\to\css\popup.css" type="text/css" />'); 
mywindow.document.write('<link rel="stylesheet" media="print" href="\path\to\css\popup.css" type="text/css" />'); 
+0

Popup的工程很棒,但打印機沒有收到css信息。 – demonking

+0

你測試過了嗎?您的瀏覽器可能找不到css文件的路徑...您應該設置絕對路徑並嘗試再次打印... –

+0

是的,我已經測試過它,但它不起作用。 打印機只獲取沒有css的信息 – demonking

1

我有固定它自己,如果別人有同樣的問題,這是解決方案:你上次

mywindow.document.write('</html>'); 

你需要這條線的Firefox:

mywindow.document.close(); 

之後,Firefox停止等待其他內容,我可以打印彈出沒有問題。 不知何故,鉻是忽略了缺失的行,我工作正常,但Firefox需要它正常工作。