IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> imprimer le contenu d'une pop up.
Options
tgval
posté 19 Mar 2007, 12:52
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



Bonjour,

Je n'arrive plus à imprimer mes images qui s'ouvrent dans des pop ups.
Quand j'imprime via Safari, c'est une page blanche qui sort, et quand j'essaie par firefox, j'ai un message d'erreur: la page a changé pendant que j'imprimais, relancer l'impression.
je relance l'impression et là ça fonctionne.

On peut voir des exemples ici

Je précise que ce site existe depuis 5 ans, et que c'est la première fois que je vois ça! blink.gif

Merci d'avance!

PS désolée pour le message d'avant, le '"fin de code" n'a pas fonctionné!


--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
schlum
posté 19 Mar 2007, 12:59
Message #2


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



CITATION(tgval @ 19 Mar 2007, 12:52) [snapback]2145936[/snapback]

PS désolée pour le message d'avant, le '"fin de code" n'a pas fonctionné!

Il y a un bouton "Editer" en bas à droite wink.gif


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
tgval
posté 19 Mar 2007, 13:11
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



voui, mais tu vas pas le croire mais avec firefox, ça marche pas bien le bouton éditer, ni les autres d'ailleurs!
Sinon, une petite idée pour mes impressions?
suis super mal, il faut que je répare ça avant vendredi pour le festival multimedia de Joinville le Pont..pont.


--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
schlum
posté 19 Mar 2007, 13:28
Message #4


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



CITATION(tgval @ 19 Mar 2007, 13:11) [snapback]2145958[/snapback]

voui, mais tu vas pas le croire mais avec firefox, ça marche pas bien le bouton éditer, ni les autres d'ailleurs!
Sinon, une petite idée pour mes impressions?
suis super mal, il faut que je répare ça avant vendredi pour le festival multimedia de Joinville le Pont..pont.

Jamais eu de problème avec ces boutons sur FireFox...

Pour les impressions, pas de problème non plus sur Safari...
Quand je clique sur une image, il me propose une impression que je refuse, puis je fais "Imprimer" sur le pop-up et ça fonctionne.


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
tgval
posté 19 Mar 2007, 13:33
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



tu veux dire que c'est normal? laugh.gif
et que je n'ai jamis rien remarqué? blink.gif
il y a une explication, voire un moyen d'imprimer directement?
en tous cas, ça me rassure, je me dis qu'on m'aurait contactée si ça ne marchait vraiment pas!
merci!


--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
oliricha
posté 19 Mar 2007, 13:50
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 144
Inscrit : 19 Jul 2002
Lieu : Au pays des vaches et du chocolat...
Membre no 2 936



Salut,

j'ai une page blanche aussi. Pas essayé d'imprimer, mais j'ai fait un aperçu à la place.


--------------------
Go to the top of the page
 
+Quote Post
tgval
posté 19 Mar 2007, 13:54
Message #7


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



je confirme, l'aperçu est fidèle à l'impression: blanc wink.gif


--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
marc_os
posté 19 Mar 2007, 14:03
Message #8


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 493
Inscrit : 21 Apr 2006
Membre no 59 799



A mon avis le problème est certainement dû au fait qu'au moment où tu as voulu imprimer, ton image n'était pas encore chargée*. Si tu attends avant d'imprimer, ou si tu essayes une 2nde fois ça doit marcher car l'image est en cache sur ton ordi.
Pour vérifier, vide le cache (les fichiers appelés "temporaires" par certains navigateurs), et le problème se posera certainement à nouveau.
Pour remédier à cela, tu pourrais charger les images par du javascript appelé par le onload du body de ta page.
Avec du code du style (dans le head):
CODE

function chargerImages ()
{
  image1 = new Image();
  image1.src = "image1.gif";
  // ... autres images
}

HTML
<body onload="java script:chargerImages()">

Comme ça, quand quelqu'un voudra imprimer une image, celle-ci aura déjà été chargée sur l'ordi du visiteur. Elle s'affichera sans délais, et ça devrait résoudre ton problème.

(*) Explication: Dans ton code:
CODE

pop=window.open('../images/coloriages/ndebele/color1.gif','pop','toolbar=0,location=0,directories=0,status=0,scrollbars=yes,resizable=yes,copyhistory=0,menuBar=0,width=580,height=800'); pop.print()"

- d'abord tu ouvres une fenêtre qui doit contenir ton image.
- immédiatement après, tu fait demandes l'impression.
Or quand il y a chargement d'un fichier ou d'une image, les choses se passent de façon asynchrone:
Ta première instruction demande l'ouverture d'une fenêtre et l'affichage de l'image.
La 2ème instruction est exécutée par le navigateur immédiatement après cette demande, sans attendre que l'image soit chargée. Si elle est chargée à ce moment là, ça marche, sinon, ben non.

PS: L'espace entre "java" et "script" dans l'extrait html ci-dessus est ajouté automatiquement par le forum (j'imagine pour des raisons de sécurité), et ne devrait pas se trouver là !

Ce message a été modifié par marc_os - 19 Mar 2007, 14:15.


--------------------
-----------------
--JE-------SUIS--
--AHMED-CHARLIE--
--CLARISSA-YOAV--
-----------------
Go to the top of the page
 
+Quote Post
baron
posté 19 Mar 2007, 14:16
Message #9


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 20 107
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Quoiqu'ayant une configuration bien différente (OS 9.1 et Mozeilla 1.3.1), j'observe le même comportement en deux temps que toi et Schlum :
CITATION
Quand je clique sur une image, il me propose une impression que je refuse, puis je fais "Imprimer" sur le pop-up et ça fonctionne.


Si je clique sur l'image choisie, une popup blanche s'ouvre, puis aussitôt la fenêtre de dialogue d'impression.
1º Si j'acquiesce alors, j'ai une page blanche (l'adresse de la page imprimée étant d'ailleurs la seule chose qui s'imprime – et elle est parlante ! « about:blank »).
2º Si je refuse cette impression, l'image se charge et s'affiche à l'écran. Du coup, je peux l'imprimer sans problème à partir du menu Fichier.

J'en conclus qu'il y a un problème de délai, ou de synchronisation, entre le chargement de l'image et l'appel de la commande d'impression… unsure.gif

[P.S.] Confirmation magistrale de cette hypothèse par marc_os ! jap.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
schlum
posté 19 Mar 2007, 16:20
Message #10


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



CITATION(tgval @ 19 Mar 2007, 13:33) [snapback]2145980[/snapback]

tu veux dire que c'est normal? laugh.gif
et que je n'ai jamis rien remarqué? blink.gif
il y a une explication, voire un moyen d'imprimer directement?
en tous cas, ça me rassure, je me dis qu'on m'aurait contactée si ça ne marchait vraiment pas!
merci!

Ah, j'avais pas compris que le site était à toi !
Non, c'est pas "normal", mais on peut s'en tirer quoi tongue.gif


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
tgval
posté 19 Mar 2007, 16:54
Message #11


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



merci pour ces avis judicieux!
cependant, une question me taraude huh.gif ta solution Mac-Os serait de rajouter du code dans chaque page, avec une ligne de code par image huh.gif
je ne m'en sens pas le courage, j'ai plus de 200 images à imprimer, elles ont toutes un nom différent!
est ce qu'il y a moyen de mettre une fonction avec image n ?
je ressens comme une grande fatigue tout d'un coup wink.gif


--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
marc_os
posté 19 Mar 2007, 18:15
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 493
Inscrit : 21 Apr 2006
Membre no 59 799



CITATION(tgval @ 19 Mar 2007, 16:54) [snapback]2146202[/snapback]

merci pour ces avis judicieux!
cependant, une question me taraude huh.gif ta solution Mac-Os serait de rajouter du code dans chaque page, avec une ligne de code par image huh.gif
je ne m'en sens pas le courage, j'ai plus de 200 images à imprimer, elles ont toutes un nom différent!
est ce qu'il y a moyen de mettre une fonction avec image n ?
je ressens comme une grande fatigue tout d'un coup wink.gif

Oui, ça fait un peu beaucoup...
Mais d'abord avant de faire quoique ce soit, il faudrait valider mon hypothèse, donc sur une page vérifier que ça marche. Après, on pourra réfléchir à un moyen un peu sioux pour avoir le moins possible à écrire.
Si ça marche bien, dans l'idéal, tu n'aurais qu'une ligne à ajouter par fichier pour inclure un fichier externe avec le code javascript. Mais à priori, je crains que tu devras au moins fournir la liste des images à charger par page. A moins d'écrire du code qui "analyse" chaque élément <a> dans ta page pour voir s'il y a un onclick, avec window.open et qui extraie le nom de l'image de la propriété onclick de l'élément...


--------------------
-----------------
--JE-------SUIS--
--AHMED-CHARLIE--
--CLARISSA-YOAV--
-----------------
Go to the top of the page
 
+Quote Post
tgval
posté 19 Mar 2007, 18:28
Message #13


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



OK, j'essaierai demain, mais a priori, je ne me taperai pas la liste des images, c'est trop long!
et puis je suis pas forte en javascript tongue.gif

merci!


--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
marc_os
posté 19 Mar 2007, 19:36
Message #14


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 493
Inscrit : 21 Apr 2006
Membre no 59 799



CITATION(tgval @ 19 Mar 2007, 18:28) [snapback]2146308[/snapback]

OK, j'essaierai demain, mais a priori, je ne me taperai pas la liste des images, c'est trop long!
et puis je suis pas forte en javascript tongue.gif

merci!

Bon, c'est Noël avant l'heure. J'ai pris ma plus belle plume informatique, et je me suis fendu du code ci-dessous. Celui-ci examine tous les liens <a>, et la valeur d'un éventuel onclick pour en extraire le nom de l'image qui peut s'y trouver. Et bien sûr il charge les images trouvées.

Il suffit de copier ce code tel quel dans un fichier que tu pourras nommer par exemple chargementImages.js

[codebox]
function chargerImage(urlImage)
{
var img = new Image();
img.src = urlImage;
}

function chargerImagesDansTagsA()
{
var extensions = new Array("jpg", "gif", "png"); // ajouter ici des extensions si nécessaire
var marqueursDebutImage = new Array("'", "\"");

var nbLiens = document.links.length;
var nbExtensions = extensions.length;
var nbMarqueurs = marqueursDebutImage.length;

for ( i=0; i<nbLiens; i++ )
{
var lien = document.links[i];
var textOnClick = lien.onclick;
var objText = new String(textOnClick);
for ( j=0; j<nbExtensions; j++ )
{
var extension = "." + extensions[j];
var positionExtension = objText.search(extension);
if ( positionExtension > 0 )
{
objText = objText.substring(0, positionExtension); // contient la valeur de onclick jusqu'au nom de l'image sans l'extension
for ( k=0; k<nbMarqueurs; k++ )
{
var positionDernierMarqueur = objText.lastIndexOf(marqueursDebutImage[k]);
if ( positionDernierMarqueur >= 0 )
{
objText = objText.substring(positionDernierMarqueur+1);
urlImage = objText + extension;
chargerImage(urlImage);
//alert(urlImage);

// on a trouvé le nom de l'image donc:
j = nbExtensions; // pas la peine de chercher une image avec une autre extension
break; // on sort de la boucle intérieure
}
}
}
}
}
}
[/codebox]

Ce fichier, tu peux le mettre par exemple dans un dossier nommé "js".

Une fois que c'est fait, tu n'as que deux choses à ajouter au code HTML de tes fichiers:
1. Dans la section <head> :
HTML
<script src="js/chargementImages.js" language="javascript" type="text/javascript"></script>


2. tu ajoutes dans le onload du tag body ceci: chargerImagesDansTagsA();

Pour vérifier que mon code trouve bien les chemins de tes images, tu peux supprimer les deux slash devant alert(urlImage). Un message affichera alors le chemin de chaque image trouvée dans tes liens.
Une fois que tu es convaincue qu'il les trouve bien, remettre bien sûr ces deux slashs pour désactiver l'appel à alert(), voire supprimer cette ligne qui ne sert qu'à tester.

Bon, tout ça c'est dans l'hypothèse que le fait de précharger les images résoudra ton problème. J'espère que c'est bien le cas !!

Ce message a été modifié par marc_os - 19 Mar 2007, 19:44.


--------------------
-----------------
--JE-------SUIS--
--AHMED-CHARLIE--
--CLARISSA-YOAV--
-----------------
Go to the top of the page
 
+Quote Post
baron
posté 19 Mar 2007, 20:37
Message #15


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 20 107
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



CITATION
Bon, tout ça c'est dans l'hypothèse que le fait de précharger les images résoudra ton problème. J'espère que c'est bien le cas !!

L'expérience suivante tend à le montrer :
Charger la page, cliquer sur une image, décliner l'invitation à imprimer – la popup s'affiche.
Revenir sur la page principale, cliquer sur la même image. L'impression est bonne.



--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
schlum
posté 19 Mar 2007, 21:16
Message #16


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



CITATION(baron @ 19 Mar 2007, 20:37) [snapback]2146480[/snapback]

CITATION
Bon, tout ça c'est dans l'hypothèse que le fait de précharger les images résoudra ton problème. J'espère que c'est bien le cas !!

L'expérience suivante tend à le montrer :
Charger la page, cliquer sur une image, décliner l'invitation à imprimer – la popup s'affiche.
Revenir sur la page principale, cliquer sur la même image. L'impression est bonne.

Oui, c'est ce que j'ai fait aussi tongue.gif (cf. au-dessus...)


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
baron
posté 20 Mar 2007, 02:13
Message #17


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 20 107
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



CITATION
(schlum @ 19 Mar 2007, 21:16 )
CITATION
(baron @ 19 Mar 2007, 20:37)
CITATION
(marc_os @ 19 Mar 2007, 19:44.) Bon, tout ça c'est dans l'hypothèse que le fait de précharger les images résoudra ton problème. J'espère que c'est bien le cas !!

L'expérience suivante tend à le montrer :
Charger la page, cliquer sur une image, décliner l'invitation à imprimer – la popup s'affiche.
Revenir sur la page principale, cliquer sur la même image. L'impression est bonne.


Oui, c'est ce que j'ai fait aussi tongue.gif (cf. au-dessus...)


Pour qu'on se comprenne bien, je précise que j'ai fait deux expériences successives :
• La première consistait – comme tu sembles l'avoir fait – à laisser la popup s'afficher, après avoir décliné la fenêtre d'impression automatique, puis à imprimer de manière traditionnelle, via le menu Fichier, le contenu de cette fenêtre surgissante.
• La deuxième à laisser, de la même façon, s'afficher cette fenêtre popup puis à revenir dans la première fenêtre générale – tout en laissant affichée en arrière-plan l'image .gif dans sa fenêtre – et à cliquer une deuxième fois sur le même lien, qui produisait alors une impression correcte.

CITATION
(baron @ hier, 14:16)
Quoiqu'ayant une configuration bien différente (OS 9.1 et Mozeilla 1.3.1), j'observe le même comportement en deux temps que toi et Schlum :
CITATION
Quand je clique sur une image, il me propose une impression que je refuse, puis je fais "Imprimer" sur le pop-up et ça fonctionne.

Si je clique sur l'image choisie, une popup blanche s'ouvre, puis aussitôt la fenêtre de dialogue d'impression.
1º Si j'acquiesce alors, j'ai une page blanche (l'adresse de la page imprimée étant d'ailleurs la seule chose qui s'imprime – et elle est parlante ! « about:blank »).
2º Si je refuse cette impression, l'image se charge et s'affiche à l'écran. Du coup, je peux l'imprimer sans problème à partir du menu Fichier.


J'en ai faite une troisième :
• Comme en 2) mais en ayant d'abord refermé la fenêtre popup, puis en recliquant sur le lien de la page principale => impression vide.

L'important est donc de charger l'image et de la garder chargée, pas de l'avoir en cache me semble-t-il…


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
marc_os
posté 20 Mar 2007, 11:38
Message #18


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 493
Inscrit : 21 Apr 2006
Membre no 59 799



CITATION(baron @ 20 Mar 2007, 02:13) [snapback]2146772[/snapback]

[...]
L'important est donc de charger l'image et de la garder chargée, pas de l'avoir en cache me semble-t-il…

C'est pour ça que je précisais: "si ça marche".
En effet, même si l'image est préchargée par du code javascript, quand la nouvelle fenêtre est affichée, l'image doit être lue depuis le disque dur. Et là aussi, ça se fait de façon asynchrone. Même si c'est x fois plus rapide que de télécharger l'image, ça peut ne pas être suffisant, et il se peut que l'image ne soit pas (suffisament) chargée quand l'appel javascript à print est fait.

Je vais faire quelques petits essais dans ma pause midi pour réduire à zéro ce risque.
A toute... wink.gif


--------------------
-----------------
--JE-------SUIS--
--AHMED-CHARLIE--
--CLARISSA-YOAV--
-----------------
Go to the top of the page
 
+Quote Post
marc_os
posté 20 Mar 2007, 13:48
Message #19


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 493
Inscrit : 21 Apr 2006
Membre no 59 799



CITATION(marc_os @ 20 Mar 2007, 11:38) [snapback]2147029[/snapback]

[...]
A toute... wink.gif

Me revoilà.
Donc, j'ai un peu étofé mon code javascript.
Le principe du code :
- comme avant, faire le tour de tous les liens d'une page et si dans le onclick on trouve une url d'image, on précharge celle-ci.
- on regarde aussi si le onclick contient window.open et pop.print(). Si c'est le cas, je change la propriété onclick de sorte que celle-ci appelle une fonction javascript perso chargée d'ouvrir une nouvelle fenêtre comme avant, et de lancer l'impression.
- Cette nouvelle fonction à la différence d'avant fait en sorte que la demande d'impression ne se fasse qu'une fois que l'image est bel et bien chargée.

Ça marche comme avant, la seule différence est la taille des fenêtres ouvertes qui est la taille de la fenêtre d'où on vient, et non pas la taille de l'image. Mais ça ne devrait pas poser de problème !

Voici le code :

[codebox]
var gImages = new Array();

function chargerImage(urlImage)
{
var img = new Image();
gImages.push(img);
img.src = urlImage;
}

function chargerImagesDansTagsA()
{
var extensions = new Array("jpg", "gif", "png"); // ajouter ici des extensions si nécessaire
var marqueursDebutImage = new Array("'", "\"");

var nbLiens = document.links.length;
var nbExtensions = extensions.length;
var nbMarqueurs = marqueursDebutImage.length;

for ( i=0; i<nbLiens; i++ )
{
var lien = document.links[i];
var textOnClick = lien.onclick;
var oTextOnClick = new String(textOnClick);
for ( j=0; j<nbExtensions; j++ )
{
var extension = "." + extensions[j];
var positionExtension = oTextOnClick.search(extension);
if ( positionExtension > 0 )
{
oText = oTextOnClick.substring(0, positionExtension); // contient la valeur de onclick jusqu'au nom de l'image sans l'extension
for ( k=0; k<nbMarqueurs; k++ )
{
var positionDernierMarqueur = oText.lastIndexOf(marqueursDebutImage[k]);
if ( positionDernierMarqueur >= 0 )
{
oText = oText.substring(positionDernierMarqueur+1);
urlImage = oText + extension;
chargerImage(urlImage);

// On va mettre un onclick qui va bien
// Petit test sur le onclick pour éviter de remplacer ce qu'il ne faut pas.
// Il doit contenir window.open et pop.print().
if ( oTextOnClick.search("window.open") != -1 && oTextOnClick.search("pop.print()") != -1 )
{
// mais on doit d'abord stocker les infos dont on a besoin
lien.grandeImage = urlImage; // trop cool, on peut ajouter des propriétés aux objets comme on veut
// Le nouveau onclick pour le lien (cf. http://www.brainjar.com/dhtml/events/ )
lien.onclick = afficherEtImprimerGrandeImage;
}
// on a trouvé le nom de l'image donc:
j = nbExtensions; // pas la peine de chercher une image avec une autre extension => on sortira de la boucle sur les extensions
break; // on sort de la boucle en cours
}
}
}
}
}
}

function afficherEtImprimerGrandeImage(event)
{
afficherEtImprimerImage(this.grandeImage);
}

// On aurait pu aussi ouvrir un fichier php à qui on aurait passé en paramètre le nom de l'image à afficher.
// Mais ça aurait fait un fichier en plus à mettre sur le site, et là ça marche sans php
function afficherEtImprimerImage(urlFichier)
{
win = window.open();
doc = win.document;
doc.writeln('<html>');
doc.writeln('<head>');
doc.writeln('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');
doc.writeln('<title>Image à imprimer</title>');
doc.writeln('</head>');
doc.writeln('<body style="margin:0; padding:0">');
// setTimeout ci-dessous nécessaire avec FireFox PC: sinon, affichage d'une fenêtre grise sous la boîte de dialogue d'impression
doc.writeln('<img src="' + urlFichier + '" alt="" onload="window.setTimeout(\'window.print()\', 100);">');
doc.writeln('</body>');
doc.write('</html>');
doc.close();
return false;
}
[/codebox]

Les modifications à faire dans tes fichiers sont les mêmes que pour ma première version du code:
- copier le code dans un fichier .js
Pour chaque page concernée:
- inclure ce fichier .js dans le head du fichier
- appeler chargerImagesDansTagsA() dans le onload du body.
C'est tout ! cool.gif

Pour tes prochaines pages, idem, mais pour tes liens tu peux utiliser directement afficherEtImprimerImage dans le onclick pour remplacer le window.open. Par exemple:
HTML
<a href="#" target="_self" onClick="afficherEtImprimerImage('images/grandeImage.jpg')"><img src="images/petiteImage.jpg" alt=""></a>


Voili voilà, on apprend tous les jours. smile.gif

PS: Testé et approuvé sur IE6, IE7 et Firefox 2 sur PC (et oui, au taf je suis sur PC sad.gif )

Ce message a été modifié par marc_os - 20 Mar 2007, 14:10.


--------------------
-----------------
--JE-------SUIS--
--AHMED-CHARLIE--
--CLARISSA-YOAV--
-----------------
Go to the top of the page
 
+Quote Post
tgval
posté 20 Mar 2007, 14:21
Message #20


Adepte de Macbidouille
*

Groupe : Membres
Messages : 238
Inscrit : 20 Oct 2003
Membre no 10 604



biggrin.gif rotfl.gif rotfl.gif biggrin.gif biggrin.gif rotfl.gif biggrin.gif

j'ai dû oublier de vous dire que j'y connaissais que pouic en js!

bon, alors, j'ai pas tout compris, c'est sûr mais je garde ça sous le coude pour la semaine prochaine, après ce festival.

Mais par exemple, dans une même page, je peux avoir des images en JPg, d'autres en gif: ça marche quand même le code? faut que je rajoute la même ligne avec gif au lieu de jpg?

en tous cas merci beaucoup marc_os de t'être laissé mourir de faim pour m'aider jap.gif

et comment ils font les autres gens pour imprimer? ils se tapent tout ce code?



--------------------
tgval

http://www.webmomes.com

Imac 2,4Ghz intel core 2 duo
Mémoire 4Go Dr2 SDRAM 667mhz
Mac OSX 5
Go to the top of the page
 
+Quote Post
marc_os
posté 20 Mar 2007, 14:35
Message #21


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 493
Inscrit : 21 Apr 2006
Membre no 59 799



Tu n'as en tout qu'une ligne à ajouter à chaque fichier, et chargerImagesDansTagsA() à ajouter dans le onload du tag body, c'est tout. Rien d'autre à faire.

Je t'ai mis un exemple ici, tu peux afficher la source pour voir, tu verras c'est simplissime.
Le fichier js est . Tu peux simplement télécharger le fichier et le mettre chez toi.
Et , c'est une version "debug" qui affiche les urls des fichiers préchargés quand il sont disponibles, càd quand leur chargement est terminé. (Rq: L'affichage des noms de fichiers marche avec tous les navigateurs que j'ai testés, sauf Safari 1.3.2).

Le code js prend en compte les extensions gif, jpf et png.
Si tu utilises d'autres extensions, il suffit de les ajouter à la liste ligne 14 du fichier js.

Bon, ben je vais me chercher un sandwich.


PS: Les autres ne demandent pas l'ouverture d'une nouvelle page ET l'impression imédiate...

Edit : Testé et approuvé sur Mac avec Safari 1.3.2, Firefox 2 et Opera 9.

Ce message a été modifié par marc_os - 20 Mar 2007, 21:33.


--------------------
-----------------
--JE-------SUIS--
--AHMED-CHARLIE--
--CLARISSA-YOAV--
-----------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 2nd November 2025 - 13:46