No puedo reproducir su problema con Chrome. Sin embargo, Opera todavía imprime toda la página externa cuando intenta imprimir solo el iframe.
He ideado una solución y, aunque funciona principalmente, no es 100% a prueba de errores (entre otros porque Opera enrolla las líneas para la impresión; no sé cómo calcular la altura correcta en esos casos). Dicho esto, el siguiente código funciona al menos razonable (utilizando jQuery para mayor comodidad):
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();
}
Espero que esto ayude.
Desde el artículo enlazado parece que, al menos para Chrome que debe tener éxito. Es el iframe en un dominio diferente? – Paul
No. Es del mismo dominio. –