我想使用window.open()來創建一個彈出,然後打印,但我遇到了問題,IE8掛起後,它彈出了彈出。Javascript window.open和打印導致IE8掛起
更多細節:
在我的應用程序的結束,我想打印輸出的信息,但我想有一個單獨的CSS和jQuery和Javascript在彈出。我認爲這些外部鏈接導致IE8掛斷,但我不確定。
我測試過的所有其他瀏覽器會發生什麼情況,彈出窗口,顯示打印對話框,並且打印正常。
在IE8中,彈出窗口,內容出現,CSS顯示加載,但不是Javascript。如果您嘗試手動打印(Ctrl + P),則無需CSS即可打印。
我曾嘗試以下這裏的例子: Script elements written with document.write in a window opened with window.open are not executed in IE8 on Windows 7
現場演示
如果你想看到一個真人版,請訪問:http://roxulmaterialscalculator.com/ 您必須填寫該應用程序所需的信息,如果你想達到打印部分。 (在第二步中,只需填寫收音機輸入即可)。
要查看完整的javascript:http://roxulmaterialscalculator.com/js/scripts.js在哪裏你會發現我嘗試過的其他方法。
代碼
通行證的元素給函數
$('#actionPrint').live('click', function(event){
printElem('#rc');
}
彈出的元件並打印出來。
function printElem(elem) {
popup($j(elem).html());
}
function popup(data) {
var mywindow = window.open('', 'printSheet', 'height=500,width=800,scrollbars=1');
mywindow.document.open();
mywindow.document.write('<html><head><title>Roxul Insulation Calculator</title>');
mywindow.document.write('</head><body>');
mywindow.document.write('<div id="rc_logo"><img src="img/roxul-logo.png" alt="roxul-logo" /></div>');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
var c = mywindow.document.createElement("link");
c.rel = "stylesheet";
c.type = "text/css";
c.href = "css/print.css";
mywindow.document.getElementsByTagName("HEAD")[0].appendChild(c);
var s = mywindow.document.createElement("script");
s.type = "text/javascript";
s.src = "js/jquery-1.5.2.min.js";
mywindow.document.getElementsByTagName("HEAD")[0].appendChild(s);
var s2 = mywindow.document.createElement("script");
s2.type = "text/javascript";
s2.src = "js/print.js";
mywindow.document.getElementsByTagName("HEAD")[0].appendChild(s2);
mywindow.print();
return true;
}
我只是猜測,但也許它是懸掛的,因爲窗口實際上並沒有加載之前,你告訴它打印。試試這個彈出窗口:'
'並跳過在頭部加載這些js文件(如果你只是在打印,我懷疑你需要在jQuery中彈出任何東西) – Flambino