Web ページの 2 つの要素の内容を出力する Javascript 関数があります。Chrome、Firefox、IE で動作しますが、Safari では空のウィンドウが表示され、印刷を選択すると空白のページが印刷されます。
これが私のコードです:
var content = "<!doctype html><html><head>";
content += '<link rel="stylesheet" href="/css/normalise.css" type="text/css" />';
content += '<link rel="stylesheet" href="/App_Themes/CS2011/StyleSheet.css" type="text/css" />';
content += "</head><body>";
//Find the div to insert the rest of the html after
var contractToFind = $(divElement).parent().find("div").get(0);
//Insert rest of code
content += contractToFind.innerHTML;
content += "</body></html>";
//Set up print window and print
var printWindow = window.open('', '', params);
printWindow.document.write(content);
printWindow.document.close();
printWindow.focus();
printWindow.print();
//Close the window
printWindow.close();
コードを変更して Safari でページを適切にレンダリングできるようにして、印刷できるようにする方法はありますか? できれば追加のプラグインを使用しないでください。
編集:エリックに感謝しますが、うまくいきませんでした。印刷に時間遅延を追加するとうまくいくようですが、理想的ではありません.10ミリ秒の遅延でも問題は解決します. 私が使用した行は次のとおりです。
setTimeout(this.print, 100);