begin process at 2010 03 22 12:07:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > IMPRESSION D UNE AUTRE PAGE A PARTIR D UN LIEN

IMPRESSION D UNE AUTRE PAGE A PARTIR D UN LIEN


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :imprimer, page, javascript, autre Niveau :Débutant Date de création :17/01/2006 Date de mise à jour :23/01/2006 17:05:58 Vu :15 108

Auteur : michimanon

Ecrire un message privé
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

Bonjour, alors vu que j ai pas trouve la solution sur le site, j ai cherche dans des sites anglophones.
Et j ai trouve la solution pour imprimer autre page que celle présente à l'écran, et cela sans avoir a l afficher au prealable.
Voila c est tt simple pourtant..

Source

  • Il faut mettre une iframe dans la page (ou se trouve le lien)
  • <iframe height="0px" src="autrepage.htm" style="visibility: hidden"></iframe>
  • Et mon lien :
  • <a href="javascript:impression()">Imprimer</a>
  • Aussi dans head:
  • <link rel="alternate" media="print" href="autrepage.htm">
  • Avec la fonction :
  • function impression() {
  • window.frames[0].print();
  • }
  • Voila c est tout, ca marche aussi bien sur IE que FF.
  • (Et si on desire lancer l'impression a l ouverture de la page il suffit de mettre dans le body de la 2eme page a imprimer:
  • <body onload="window.print()">
  • )
Il faut mettre une iframe dans la page (ou se trouve le lien)

<iframe height="0px" src="autrepage.htm" style="visibility: hidden"></iframe>

Et mon lien : 
<a href="javascript:impression()">Imprimer</a>

Aussi dans head:
<link rel="alternate" media="print" href="autrepage.htm"> 

Avec la fonction :
function impression() {
    window.frames[0].print();
  }

Voila c est tout, ca marche aussi bien sur IE que FF.
(Et si on desire lancer l'impression a l ouverture de la page il suffit de mettre dans le body de la 2eme page a imprimer:
 <body onload="window.print()"> 
) 

 Conclusion

Bon pour la source du code , je l ai eue dans ce site
http://www.webxpertz.net/forums/showthread.php?th readid=2849


 Historique

23 janvier 2006 14:18:25 :
J ai juste change le niveau de la source vu que coucou747 m en a fait la remarque J ai pas trouve le niveau Copié...
23 janvier 2006 17:05:59 :
Il faut mettre "<link rel="alternate" media="print" href="lien.htm"> pour que ca marche

 Sources de la même categorie

Source avec Zip Source avec une capture SÉQUENCEUR par jdmcreator
Source avec Zip COMPRESSION DE TEXTE CÔTÉ CLIENT EN JS VIA ALGORYTHME LZW par niamor36
Source avec Zip VIRTUAL IPHONE (V.2) par loicseg
Source avec Zip MOOTABLEAU par Miky76
Source avec Zip CALCULER VOTRE IMC par lesnouesremy

 Sources en rapport avec celle ci

HTML_ENTITIES_DECODE par zen69
DÉSACTIVER UN BOUTON SUBMIT APRÈS ENVOI DU FORMULAIRE par SoftDeath
Source avec une capture PROTECTION DE CONTENU DE PAGE WEB PAR JAVASCRIPT par lucas74
DÉTECTION JAVASCRIPT/AJAX SANS RECHARGER LA PAGE (JS/PHP) par Lomendil
Source avec Zip OUVERTURE DE PAGE JUSTE À UN ENDROIT OU SUR DES DONNES PRÉCI... par abdelaziz_info

Commentaires et avis

Commentaire de nekosan3 le 18/01/2006 09:41:58

Merci pour ta recherche, ça va m'aider à optimiser mon site. Moi pour mon site de recettes japonaise, la page à imprimer avais été travaillé sur un log de mise en page puis mis en  .pdf à telecharger, avec bien sur si les visiteurs ne l'ont pas, le programme Reader's aussi en telechargement en lien.    

Commentaire de coucou747 le 22/01/2006 11:06:16

salut
cette source est tirée d'un tutorial, pas besoin d'avoir travaillé pour trouver ça...
ça ne vaut pas du tout initié...

Commentaire de michimanon le 23/01/2006 14:15:26

Salut coucou747
pour le Niveau de la source, t as tt a fait raison
sauf que moi j ai rempli le truc a la va vite (je pensais qu il s agissait de mon niveau a moi..)
Anyway.. merci pour la remarque

Commentaire de gui2113 le 18/04/2007 16:54:18

Voilà mon problème :
sur une page, j'ai une table contenant une liste de pièces provenant d'une DB access. Dans cette table, pour chaque record, j'ai une image qui renvoie vers une page update. dans celle-ci on peut rentrer certaines informations qui s'ajouteront dans ma DB. Je souhaiterai créer un bouton du même type qui imprimerais la page d'Update.

Voici le type de lien que j'utilise pour accéder à ma page d'update:

<a href=requestUpdate.asp?id={{ID}}&cl="+server.URLEncode(cl)<img src='images/buttonUpdate.gif'></a>

Le problème avec ton code est qu'il faut connaitre à l'avance le nom de la page à imprimer pour l'introduire dans le head.

Quelqu'un connait-il une solution ??

Merci d'avance

Commentaire de cedcyr le 10/05/2007 23:49:04

ce code est interesant pour un novice comme moi mais je cherche a imprimer une photo presente sur une autre page et ca marche à un detail près ! lors de l'impression ma photo dépasse du cadre, comment puis-je forcer le redimentionnement de celle-ci

voici le code de ma page:

<head>
    <title>plan pour prise 7 broche</title>
    <link rel="alternate" media="print" href="13 broche.jpg">

</head>
<script>function impression() {
    window.frames[0].print();
  }
</script>

<body bgcolor="#ccffff">

<iframe height="0px" src="13 broche.jpg" style="visibility: hidden"></iframe>
<p align="center">ceci est le plan de cablage pour une prise 7 broches standard norme iso 1724</p>
<p align="center">    <img src="prise 7 broche.jpg" width="500" height="350" border="4" /> </p>
<p align="center"><span title="cliquer sur ce lien pour imprimer ce plan"><img SRC="printer.ico" OnClick="javascript:window.print()"/></span></p>
<a href="javascript:impression()">Imprimer</a>

</body>
</html>



merci pour votre aide par avance

cedcyr!

Commentaire de merkhaled le 07/10/2007 09:44:41

Pour répondre à GUI2113 :
il suffit de mettre un <div id=entete></div>
dans le head

et qd tu as l'adresse de la page à imprimer, tu change le contenu du div avec la fonction innerHTML
c'est de l'ajax.
<head>
<div id=entete></div>
</head>
<body>

<script language=javascript>
var adresse="ma_page.php";
document.getElementById("entete").innerHTML="<link rel=\"alternate\" media=\"print\" href=\""+adresse+"\">";
</script>

</body>

;)

Commentaire de laurent75014 le 17/11/2007 10:58:39

Bonjour,
Je souhaitais pouvoir utiliser ce code pour imprimer deux pages différentes a partir d'une page d'accueil.

<script>
<!--  
function impression_1() {
window.frames[0].print();
}

function impression_2() {
window.frames[1].print();
}
//-->
</script>


dans le body, 2 iframe

et dans le head
<link rel="alternate" media="print" href="page1.html">
<link rel="alternate" media="print" href="page2.html">


C'est la que ca cloche, avec FF, ca marche nickel, mais avec IE, c'est toujours la page1 qui s'imprime, jamais la page 2.

Y a t'il une solution pour imprimer au choix soit la page1, soit la page2.

Merci de votre aide.

Commentaire de phpajax le 18/11/2007 11:13:35

bonjour,
réponse à laurent75014:

une idée  que  je  trouve pas mal, que  tu peut améliorer à ton  gout, il s'agit d'ouvrir un popup, on mettra dedans tous les éléments qu'on veut imprimer, tu peut ajouter une entete, un pied de page ...

"page-break-after:always" sert a faire un saut de page.

voilà si quelqu'un peut trouver une amélioration pour faire ceci sans à ouvrir un popup, je suis preneur .

<script language=javascript>

function imprime()
   {
      // Définit la zone à imprimer
      var zi = window.frames[0].innerHTML;
       zi =zi+"<h1 style=\"page-break-after:always\">";
       zi =zi+" "+ window.frames[1].innerHTML.innerHTML;


      var Headers = '<!DOCTYPE HTML PUBLIC ><HTML><HEAD></HEAD><BODY onload="window.print();window.close()">';
      zi = zi+"<hr></body></html>";
      // Ouvre une nouvelle fenetre
      var f = window.open("", "ZoneImpr", "height=200, width="+screen.width+",toolbar=0, menubar=0, scrollbars=1, resizable=1, status=0, location=0, left=10, top=10");

      // Définit le Style de la page
      f.document.body.style.color = '#000000';
      f.document.body.style.backgroundColor = '#FFFFFF';
      f.document.body.style.padding = "10px";

      // Ajoute les Données

      f.document.write ("" + Headers + zi );
      f.document.close();
      // Imprime et ferme la fenetre


      return;
   }
</script>

Commentaire de leojou le 26/11/2007 13:39:58

Salut,

Intéressante cette source, mais :

Visiblement ça ne fonctionne pas avec tous les navigateurs mac, pouvez vous me dire si ça fonctionne sur tous les navigateurs pc ?

Explorer : ne fonctionne pas
Firefox & Netscape : inclue un rectangle noir en haut de page
Opéra : imprime la page mère et non la cible
Safari : fonctionne bien

Est-ce pareil sur pc ? Si oui, y-a-t-il un correctif qui permettrai de rendre le code compatible avec tous les navigateurs ?

Commentaire de leojou le 26/11/2007 14:02:44

(il n'y a pas de fonction éditer sur ce forum, alors j'ajoute quelques précision à mon message précédent)

quand "style="visibility: hidden" est inclus dans le code, ça marche bien avec firefox, netscape, safari, mais les problèmes cités dans le post précédent persistent avec opéra et explorer mac

quand "style="visibility: hidden" est supprimé du code, les symptomes sont ceux cités dans le post précédent, ça ne fonctionne pas, sauf avec safari

alors je réitère ma question : y-a-t-il un correctif qui permettrai de rendre le code compatible avec tous les navigateurs ?

<head>
<link rel="alternate" media="print" href="print.htm">
</head>

<script>
<!--  
function impression() {
window.frames[0].print();
}
</script>


<body>
<iframe height="0px" src="print.htm"  style="visibility: hidden" ></iframe>
<a href="javascript:impression()">Imprimer</a>
</body>
</html>

Commentaire de phpajax le 26/11/2007 14:09:17

il suffit que  tu aie la logique objets:
Au lieu de mettre window.frames[0].
Tu ajoute id='frame1' dans ta balise <frame> ou <iframe>
Tu change : window.frames[0].print(); par document.getElementById('frame1').print();

Ca devrait fonctionner. ;)

Commentaire de leojou le 26/11/2007 15:11:46

j'ai essayé, mais il ne se passe rien quand je clique sur imprimer, voici le code corrigé selon tes conseils, je me suis peut-être gouré ? :


<head>
<link rel="alternate" media="print" href="print.htm">
</head>

<script>

<!--  
function impression() {
document.getElementById('frame1').print();
}
</script>

<body>

<iframe id='frame1' height="0px" src="print.htm"  style="visibility: hidden" ></iframe>
<a href="javascript:impression()">Imprimer</a>

</body>
</html>

Commentaire de phpajax le 26/11/2007 15:16:00

c'est normal que ca marche pas, tu peut pas imprimer quelque chose de non visible. essaye de mettre width et height à 0

<head>
<link rel="alternate" media="print" href="print.htm">
</head>

<script>

<!--  
function impression() {
document.getElementById('frame1').print();
}
</script>

<body>

<iframe id='frame1' height="0px" src="print.htm"  width='0px'></iframe>
<a href="javascript:impression()">Imprimer</a>

</body>
</html>

Commentaire de leojou le 26/11/2007 15:46:52

en fait, le lien imprimer est innactif maintenant...

Commentaire de phpajax le 26/11/2007 15:48:53

essaye cette fonction et dis moi ce que tu en penses
<script language=javascript>

function imprime()
   {
      // Définit la zone à imprimer
      var zi = window.frames[0].innerHTML;
       zi =zi+"<h1 style=\"page-break-after:always\">";
       zi =zi+" "+ window.frames[1].innerHTML.innerHTML;


      var Headers = '<!DOCTYPE HTML PUBLIC ><HTML><HEAD></HEAD><BODY onload="window.print();window.close()">';
      zi = zi+"<hr></body></html>";
      // Ouvre une nouvelle fenetre
      var f = window.open("", "ZoneImpr", "height=200, width="+screen.width+",toolbar=0, menubar=0, scrollbars=1, resizable=1, status=0, location=0, left=10, top=10");

      // Définit le Style de la page
      f.document.body.style.color = '#000000';
      f.document.body.style.backgroundColor = '#FFFFFF';
      f.document.body.style.padding = "10px";

      // Ajoute les Données

      f.document.write ("" + Headers + zi );
      f.document.close();
      // Imprime et ferme la fenetre


      return;
   }
</script>

Commentaire de leojou le 26/11/2007 16:29:24

c'est une alternative intéressantei, mais nombreux navigateurs sont configurés pour bloquer les popups, donc ça ne peut pas fonctionner pour tout le monde...

visiblement le problème du script qui figure en haut de page est qu'il n'est pas compatible avec tous les navigateurs. J'ai pu apercevoir sur le net qu'il y a possibilité de coder de manière à ce que le script détecte quel navigateur est utilisé.

Ce qui serait utile, c'est que lorsque safari est détecté, la commande "style="visibility: hidden" ne soit pas prise en compte

c'est du chinois pour moi toute cette prog, ci-dessous j'ai trouvé un script sur le web, mais je ne sais pas où placer le lien html pour activer ce javascript... help !


Commentaire de leojou le 26/11/2007 16:30:17

<script type="text/javascript">
if(navigator.appName=='Microsoft Internet Explorer')
{
document.write('<a href="javascript:parent.imprim.focus();
window.print()">Imprimer</a>');
document.write('<iframe src="print.htm" style="width: 0;
height: 0" id="imprim" name="imprim"></iframe>');
}
else if(navigator.appName=='Netscape')
{
document.write('<a
href="javascript:parent.imprim.print();">Imprimer</a>');
document.write('<iframe src="print.htm" style="width: 0;
height: 0; visibility: hidden" id="imprim"
name="imprim"></iframe>');
}
else
{
document.write('');
    }
</SCRIPT>

Commentaire de bibo06 le 03/06/2008 13:10:24

Bonjour je fais un up sur ce sujet car il m'est interressant.
J'ai beau essayer il m'affiche toujours la page ou se situe le lien et je ne vois pas ou est le problème.
dans mes balise head j'ai :
<head>
<link rel="alternate" media="print" href="impression.php?id=<?php echo $id; ?>">
</head>

pour le javascript:
function impression() {
    window.frames[0].print();
  }

et au niveau du lien:
<iframe height="0px" src="impression.php?id=<?php echo $id; ?>" style="visibility: hidden"></iframe>
<td height="19" colspan="3" align="right"><a href="javascript:impression()" title="Imprimer cette fiche"><img src="images/imprimer.gif" alt="Imprimer cette fiche" style="width:23px; height:22px; border:0; margin-right:20px;" /></a></td>

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Erreur Javascript lors de l'impression [ par darb66 ] Bonjour,J'ai une erreur javascript qui apparait lorsque j'essaie d'imprimer une page depuis IExplorer (en utilisant les functionalites du navigateur f Paramétrer une impression [ par el_butcho ] Bonjour, Dans le cadre d'un cours, je dois réaliser une application en php. Cette dernière doit me permettre d'imprimer un certain nombre de chose. De Problème chargement image javascript [ par Travailleuuse06 ] Bonjour,je suis devant un très gros problème que je n'arrive pas à résoudre. J'ai une page html où j'ai un &lt;img src="image"&gt;Dans ma partie jav Détecter est afficher les coordonées de la page du navigateur ??? [ par supergrey ] Bon, déjà je précise qu'en javascript je suis un newbie. Je voudrais afficher dans la barre de titre du navigateur , la position de la fenetre du navi Utiliser Java depuis JavaScript [ par martok ] Salut,Je travaille sur un portail SAP.Les technologies que j'utilise sont Java et JavaScript. Je vais essayer de bien synthétiser le problème.Coté Jav Javascript chargé dynamiquement. [ par chmod777 ] Bonjour &#224; tous!mon probl&#232;me est le suivant: lorsque je charge via une fonction AJAX le contenu d'une page html dans un div (genre mondiv.in demande de script [ par nikki113 ] bonsoir,je me permets de vous demander un script car je ne connais rien au javascript. Actuellement j apprends le PHP et cela n est pas encore le top. Mozilla et javascript [ par Zebra1928 ] bonjour à tous !!j'ai la portion de code suivante de la page " mapage.html ": &lt;html&gt;&lt;head&gt;&lt;title&gt;New document&lt;/title&gt;&lt;meta Actualisation de la page parente [ par gatita_dev ] Bonjour,mon probléme c ke j'ouvre une page de mise a jour aprés de cette même je dois ouvrir la page parente et bien sur je trouve ke j'ai tjr les anc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales