Afin de faciliter l'impression, je génère dynamiquement un iFrame, puis je le remplis avec du contenu. Cela fonctionne sur IE6, IE8, Chrome et Firefox sur PC et Mac. Le problème est pour une raison quelconque, il ne fonctionne pas correctement sur IE7.IE7 n'affiche pas les images générées dynamiquement iFrame
Dans IE7, les images ne s'affichent pas; à la place, ils montrent des images brisées. Même résultat lors de la visualisation. C'est étrange parce que comme je l'ai dit, ça fonctionne bien dans IE6 et IE8.
Des idées? J'ai posté une copie abêtis here
Voici le code source (comme on le voit dans l'exemple):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>iframe print test</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript">
function printIFrameFunc(id)
{
var iframe = document.frames ? document.frames[id] : document.getElementById(id);
var ifWin = iframe.contentWindow || iframe;
iframe.focus();
ifWin.print();
return false;
}
function printfra() {
$("iframe#printIFrame").remove();
// Create an iframe which will be populated with the data to be printed...
$('body').append('<iframe id="printIFrame"></iframe>');
// !!! This next line commented so the iframe will be visible on the screen
//$("iframe#printIFrame").attr('style','position:absolute;left:-500px;top:-500px;');
// Don't do anything on the iframe until it's ready to go
if ($.browser.webkit)
$("iframe#printIFrame").ready(iframeloadedprint);
else
$("iframe#printIFrame").load(iframeloadedprint);
function iframeloadedprint() {
var printBody = $("iframe#printIFrame").contents().find('body');
printBody.html($("#mainContainer").html());
printIFrameFunc('printIFrame');
}
return false;
}
</script>
</head>
<body>
<div id="mainContainer">
<img src="dash.png" alt="test image" />
<a href="#" onclick="printfra();">Click here to print</a>
</div>
</body>
Toute aide ou suggestion serait grandement appréciée!