私はjavascriptで新しいウィンドウを作成し、次を使用してその内容を書いていますdocument.write()
:
var windowContent = '<!DOCTYPE html>';
windowContent += '<html>'
windowContent += '<head><title></title></head>';
windowContent += '<body>'
windowContent += '<img src="' + dataUrl + '" width="670px" style=">';
windowContent += '</body>';
windowContent += '</html>';
var printWin = window.open('','newWindow','width=100,height=100');
printWin.document.open();
printWin.document.write(windowContent);
printWin.document.close();
printWin.focus();
printWin.print();
setTimeout(function() {
printWin.close();
}, 100);
ほとんどのブラウザーではこれで問題なく動作しますが、Safari 6.0.2 では、この行printWin.document.write(windowContent);
によってブラウザーがクラッシュすることがあり、何も実行されずに空白のウィンドウが表示されることもあります。
代わりに使用する必要がある代替手段はありますdocument.write();
か? グーグルによると、一般的なアドバイスは を使用するようdocument.body.appendChild();
ですが、ドキュメントには最初に追加するコンテンツがありません。