IMPRESSION D UNE AUTRE PAGE A PARTIR D UN LIEN

nekosan3 Messages postés 10 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 21 juin 2011 - 18 janv. 2006 à 09:41
cs_bibo06 Messages postés 116 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 10 mars 2009 - 3 juin 2008 à 13:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35616-impression-d-une-autre-page-a-partir-d-un-lien

cs_bibo06 Messages postés 116 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 10 mars 2009
3 juin 2008 à 13:10
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:
" style="visibility: hidden">
<td height ="19" colspan="3" align="right">[javascript:impression() ]</td>
leojou Messages postés 17 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 26 novembre 2007
26 nov. 2007 à 16:30
<script type="text/javascript">
if(navigator.appName=='Microsoft Internet Explorer')
{
document.write('[javascript:parent.imprim.focus();
window.print() Imprimer]');
document.write('');
}
else if(navigator.appName=='Netscape')
{
document.write('[javascript:parent.imprim.print(); Imprimer]');
document.write('');
}
else
{
document.write('');
}
</SCRIPT>
leojou Messages postés 17 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 26 novembre 2007
26 nov. 2007 à 16:29
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 !
phpajax Messages postés 27 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 17 octobre 2007
26 nov. 2007 à 15:48
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>';
zi = zi+"<hr></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>
leojou Messages postés 17 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 26 novembre 2007
26 nov. 2007 à 15:46
en fait, le lien imprimer est innactif maintenant...
phpajax Messages postés 27 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 17 octobre 2007
26 nov. 2007 à 15:16
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>


[javascript:impression() Imprimer]

</html>
leojou Messages postés 17 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 26 novembre 2007
26 nov. 2007 à 15:11
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>


[javascript:impression() Imprimer]

</html>
phpajax Messages postés 27 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 17 octobre 2007
26 nov. 2007 à 14:09
il suffit que tu aie la logique objets:
Au lieu de mettre window.frames[0].
Tu ajoute id='frame1' dans ta balise <frame> ou
Tu change : window.frames[0].print(); par document.getElementById('frame1').print();

Ca devrait fonctionner. ;)
leojou Messages postés 17 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 26 novembre 2007
26 nov. 2007 à 14:02
(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>


[javascript:impression() Imprimer]

</html>
leojou Messages postés 17 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 26 novembre 2007
26 nov. 2007 à 13:39
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 ?
phpajax Messages postés 27 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 17 octobre 2007
18 nov. 2007 à 11:13
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>';
zi = zi+"<hr></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>
laurent75014 Messages postés 12 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 11 février 2009
17 nov. 2007 à 10:58
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.
merkhaled Messages postés 26 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 8 octobre 2007
7 oct. 2007 à 09:44
Pour répondre à GUI2113 :
il suffit de mettre un


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>


</head>


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



;)
cedcyr Messages postés 20 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 15 février 2014
10 mai 2007 à 23:49
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>




ceci est le plan de cablage pour une prise 7 broches standard norme iso 1724







[javascript:impression() Imprimer]


</html>



merci pour votre aide par avance

cedcyr!
gui2113 Messages postés 2 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 18 avril 2007
18 avril 2007 à 16:54
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:



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
michimanon Messages postés 4 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 23 janvier 2006
23 janv. 2006 à 14:15
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
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 janv. 2006 à 11:06
salut
cette source est tirée d'un tutorial, pas besoin d'avoir travaillé pour trouver ça...
ça ne vaut pas du tout initié...
nekosan3 Messages postés 10 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 21 juin 2011
18 janv. 2006 à 09:41
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.
Rejoignez-nous