Bonjour,
1- à tester :
<iframe onload="isLoaded(this);" name="pdf" id="pdf" src="{chemin}" width="900" height="400" align="middle"></iframe>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <script>
function isLoaded( frameObj )
{
// on récupère le contenu
var frameContent = frameObj.contentWindow.document.body.innerHTML;
if( frameContent != '' )
{
alert( 'iframe chargée'); // (en TEST)
var frameName = frameObj.name;
var theFrame = window.frames[frameName];
theFrame.focus();
theFrame.print();
}
}
</script> |
L'"astuce" consiste à vérifier si du contenu existe dans l'iframe.
Attention : même "Page Not Found" est du contenu !
Il faut donc un "{chemin}" valide.
2- Comme le souligne Watilin, en cas d'une différence d'origine, on obtient une erreur :
SecurityError: Permission denied to access property "document" on cross-origin object
3- Si le "{chemin}" a la même origine, ça devrait fonctionner.
4- Pour mes tests, j'ai simulé un chargement "long" (5 secondes) avec :
1 2 3 4
| <?php
sleep ( 5 ); // temporisation de 5 secondes
?>
COUCOU ! |
Testé sous Chrome, Opera, Edge, Firefox : ça semble OK
Partager