11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour, Smiley decu
J'ai en js :
function imprime_zone() {
var init = document.body.innerHTML;
document.getElementById("ent_impri").style.visibility = 'visible';
var en_tete = document.getElementById("ent_impri").innerHTML;
var zi = document.getElementById("adh_donnees").innerHTML;
var zj = document.getElementById("baratin").innerHTML;
var basbul = document.getElementById("bas_bul").innerHTML;
var basbul2 = document.getElementById("bas_bul2").innerHTML;
zi = en_tete + zi + basbul + basbul2;
window.document.body.innerHTML = zi;
window.print();
alert('après impression du recto retourner la feuille pour imprimer le verso');
window.document.body.innerHTML = init;
zj = en_tete + zj;
window.document.body.innerHTML = zj;
window.print();
window.document.body.innerHTML=init;

sur mon site (http://dev.cgcp.asso.fr/Le_CGCP/bulletin_0.php) j'ai une div :
<div id="ent_impri" style="visibility:hidden;">
<table class="cell_liees_100">
<tbody>
<tr>
<td>
<img src="../common/images/logo_cgcp_105_105.png" alt="logo" />
</td>
<td class="table_centree_80"><b><i>CYBERGROUPE GÉNÉALOGIQUE DE CHARENTE POITEVINE</i></b>
</td>
</tr>
</tbody>
</table>
</div>
qui contient une image. Sur la première page, il n'affiche pas l'image alors que sur la deuxième c'est OK.
Je ne vois pas pourquoi. Quelqu'un a t il une idée?
Merci
Hello,

Utilise les balises "code" en bas de l'éditeur de post pour mettre ton code.
C'est toujours plus simple si on a un lien vers un site.

Désolé pour le moment je ne peux pas faire plus
Charly
Hello,

le lien que tu m'as donner est un lien type local. Je ne peux pas accéder a ton site.
--> utilise tu un serveur à la maison ?

Pour ce qui est des balises code c'est dans ton poste de base que je pensais qu'il en manquait.
--> pour les code html / css / php / mysql / js
--> pour les liens web il y a la balise "lien"

A +
Salut

Je ne sais pas vraiment de quoi tu parles exactement, mais selon ce que j'ai compris, j'ai trouvé que l'image que je suppose que tu souhaites faire affichée est inclu dans un div ayant un style avec une propriété css
visibility:hidden
alors par conséquent il est impossible, toute fois dans ta deuxième page elle s'affiche car tu as extrais ton tableau contenant l'image -d'une certaine manière- de la div et tu l'as remis au DOM alors la propriété de visibility n'a plus d'impact sur l'image.

Edit:

Toute fois pour ce que Chum essaie de te dire c'est que tu as des petits buttons appropriés à chaque contexte de code en bas de l'éditeur de texte où tu rédiges tes réponses sur ce forum, alors ton intervention doit normalement ressembler à ça:
Pour le code JS:
function imprime_zone() {
var init = document.body.innerHTML;
document.getElementById("ent_impri").style.visibility = 'visible';
var en_tete = document.getElementById("ent_impri").innerHTML;
var zi = document.getElementById("adh_donnees").innerHTML;
var zj = document.getElementById("baratin").innerHTML;
var basbul = document.getElementById("bas_bul").innerHTML;
var basbul2 = document.getElementById("bas_bul2").innerHTML;
zi = en_tete + zi + basbul + basbul2;
window.document.body.innerHTML = zi;
window.print();
alert('après impression du recto retourner la feuille pour imprimer le verso');
window.document.body.innerHTML = init;
zj = en_tete + zj;
window.document.body.innerHTML = zj;
window.print();
window.document.body.innerHTML=init;

Pour le code Html:
<div id="ent_impri" style="visibility:hidden;">
<table class="cell_liees_100">
<tbody>
<tr>
<td>
<img src="../common/images/logo_cgcp_105_105.png" alt="logo" />
</td>
<td class="table_centree_80"><b><i>CYBERGROUPE GÉNÉALOGIQUE DE CHARENTE POITEVINE</i></b>
</td>
</tr>
</tbody>
</table>
</div>

Pour ton lien:
http://dev.cgcp.asso.fr/Le_CGCP/bulletin_0.php

Bonne courage
Modifié par unami (11 Dec 2012 - 14:32)
Salut,
tu as bien compris et ce div est capturé sur entete pour être imprimé avec les deux pages (recto et verso).
mon script commence par une capture de la page (init) pour la remettre en fin, suivi d'une capture de cette div dans entete.
puis je capture les éléments des deux pages puis je compose avec entete + ZI +... l'image de la div n'apparait pas alors que le reste de la div apparait. Je fais de même avec la deuxième page (entete+zj) et là, l'ensemble de la div est OK
Je ne comprends pas le hidden est remis après l'impression de la deuxième page et avant la remise à (init).

J'y ai déjà passé beaucoup de temps mais je ne comprends pas. Si tu veux que j'incorpore des "alert", n'hésite pas.
Merci
Salut,

Sincèrement je ne vois pas le problème, pour moi l'image s'affiche après impression sur les deux pages, j'ai testé sur Chrome et FireFox, et le résultat de l'impression comporte toujours l'image bien affichée.

Si quelque chose me semble n'est pas vraiment bonne, c'est la faon dont tu l'as fait, car il y a une autre façon plus simple, fluide, et propre pour atteindre ton objectif, le "print css".
bonjour,
Merci
Je ne sais pas ce qui s'est passé car avant mon message, le logo ne s'imprimait pas !...
@+