私はクロームを使用して問題を再現することはできません。 Operaは、iframeだけを印刷しようとしても、実際には外部ページ全体を印刷しています。
私は回避策を考案しましたが、大部分は動作しますが、フェールセーフではありません(オペラは印刷行を折り返すため、正しい場合は正しい高さを計算する方法がわかりません)。つまり、次のコードは少なくとも(jQueryを使用して)便宜的に動作します。
if ($.browser.opera) {
var ifr = $('#youriframe');
var ifrbody = ifr.get(0).contentDocument.body;
var sheet = $([
'<style type="text/css" media="print">',
'body * {',
' display: none;',
'}',
'#youriframe {',
' border: none;',
' display: block;',
' height: ', ifrbody.scrollHeight, 'px;',
' margin: 0px;',
' padding: 0px;',
' width: ', ifrbody.scrollWidth, 'px;',
'}',
'<\/style>'
].join(''));
$('head').append(sheet);
window.print();
sheet.remove();
}
希望します。
を試してみてください、次のように私は決定的なコードに付属のコード上および上記のコードに変更を加えた後、試してみました成功。 iframeは別のドメインにありますか? – Paul
いいえ同じドメインのものです。 –