les fonctions d'envoi : l'impression


sources code   / source data  /  code page   / exemple

fonctionne avec
netscape 4.7 à 7
Mozilla
IE 5 à  6




code

admettons que la page comporte des cadres
les envois de références, d'impression vont toujours concerner la page principale
et non celles qui se trouvent dans les cadres imbriqués

sauf si on utilise les noms de ces fenetres en argument

logo
menuhaut
menu
une peut comporter un frameset :
entete
detailmenu
detail peut contenir
un frameset
ou iframe
ou afficher une image externe :

 imagewindow

Modifier plusieurs cadres en meme temps
exemple
je peux déterminer l'objet fenetre f comme  ceci
f=parent.frames["une"].frames["imagewindow"]
et dès lors effectuer toutes les opérations sur cet objet

comme par exemple
vérifier si l'ur existe bien dans le frame et attribuer aussi non un autre objet à f
if (!f)      f = parent.frames["une"].frames["detail"];

modifier l'url d'un frame
parent.frames["menu"].location.href='http://www.iconecontemporaine.catho.be/public/menumail.html';


ceci peut être utilisé pour   l' impression du contenu informatif

seule restriction sur internet explorer : il faut laisser la selection d'impression sur le frame sélectionné puisque l'on donne le focus avant l'activation de l'impression.


exemple


<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
     <html>
     <head>

.....

<script language=JavaScript>
//*  Déclarations et définitions globales  */
//<!-- Begin
var da = (document.all) ? 1 : 0;
var pr = (window.print) ? 1 : 0;
var mac = (navigator.userAgent.indexOf("Mac") != -1);


function impression()
{
var f="";
      f = parent.frames["une"].frames["imagewindow"];
      if (!f)      f = parent.frames["une"].frames["detail"];
      if (!f)      f = parent.frames["une"];
  printPage(f,this);
}




function printPage(frame, arg) {
   //alert(frame.name);
  a = confirm (' imprimer les informations de la page ? ');
  if (a) {
  if (frame == window) {
        printThis();
     }
  else {
        link = arg; // a global variable
       printFrame(frame);
    }
    return false;
  }
}

function printThis() {
  if (pr) { // NS4, IE5
    window.print();
  } else if (da && !mac) { // IE4 (Windows)
    vbPrintPage();
  } else { // other browsers
    //alert("Désolé votre navigateur ne permet pas cette fonction");

    vieuxnavigateur();
  }
}

function printFrame(frame) {
  if (pr && da) { // IE5
    frame.focus();
    window.print();
    link.focus();
  } else if (pr) { // NS4
    frame.print();
  } else if (da && !mac) { // IE4 (Windows)
    frame.focus();
    setTimeout("vbPrintPage(); link.focus();", 100);
  } else { // other browsers
    //alert("Désolé votre navigateur ne permet pas cette fonction");
    vieuxnavigateur();
  }
}

// correctif vbscript

if (da && !pr && !mac) with (document) {
  writeln('<OBJECT ID="WB" WIDTH="0" HEIGHT="0" CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>');
  writeln('<' + 'SCRIPT LANGUAGE="VBScript">');
  writeln('Sub window_onunload');
  writeln('  On Error Resume Next');
  writeln('  Set WB = nothing');
  writeln('End Sub');
  writeln('Sub vbPrintPage');
  writeln('  OLECMDID_PRINT = 6');
  writeln('  OLECMDEXECOPT_DONTPROMPTUSER = 2');
  writeln('  OLECMDEXECOPT_PROMPTUSER = 1');
  writeln('  On Error Resume Next');
  writeln('  WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER');
  writeln('End Sub');
  writeln('<' + '/SCRIPT>');
}


function vieuxnavigateur()
{ //alert('controle du cadre');
parent.frames["menu"].location.href='http://www.iconecontemporaine.catho.be/public/menumail.html';
//il faut avertir qu'il existe un menu d'aide....

var writeWin = null;

 var f="";
      f = parent.frames["une"].frames["imagewindow"];
      if(!f)
      f = parent.frames["une"].frames["detail"];
    if (!f)
      f = parent.frames["une"];   
        var writeWin="";
          writeWin =  window.open('','impression','top=0,left=0,width=600,height=350');
          //alert('fenetre cree');
          var ePen="";
          ePen = ePen +'<html><head><title>Exportation du site www.iconecontemporaine.catho.be</title>';
          ePen = ePen + '</head>';
          ePen = ePen +'<body >';
          ePen = ePen +'si Votre navigateur ne permet pas cette fonction<br>';
          ePen = ePen +' pour y arriver vous devez ouvrir une nouvelle fenetre<br>';
          ePen = ePen +'de votre navigateur en cliquant sur <a href="';
          ePen = ePen +f.location.href;
          ePen = ePen +'" target="_top_print_window" onclick="window.close()"> ce lien</a><br>';
          ePen = ePen +'vers la page : <br>'+f.location.href;
          ePen = ePen +'<br>'+f.document.title;
          ePen = ePen +'<br><hr>Trucs utiles si rien ne marche :<br>';
          ePen = ePen +'<br><a href="/aide.html" target="une"  onclick="window.close()">fonction aide</a><br>';
          ePen = ePen +'<hr></body></html>';
          var wd = writeWin.document;
          wd.open();
          wd.write(ePen);
          wd.close();
}

// <!-- barre d'impression -->

//  End -->
</script>
</head>
<body>
 
<li>
<font size=-1><a href="#" onclick="impression()"><img SRC="../logo/print.gif" border=0 NOSAVE height=20 width=20 alt="imprimer le contenu informatif">
 imprimer</a>   /  <a href="aide.html" target="une"> aide</a>

<li>options :</li>
<li><A HREF="#" onClick="print()">l'écran</A></li>
<li><A HREF="#" onClick="return printPage(parent.une,this)">cadre droit</A></li>
<li><A HREF="#" onClick="impression()">page sans menus</A></li>
<li><A HREF="#" onClick="return printPage(parent.imagewindow, this)">image externe</A></li>
</font>

le reste de la page ....

</body>



sources code   / source data  /  code page   / exemple



Data

Par facilité le code peut également être placé en argument pour des fonctions java




sources code   / source data   /  code page   / exemple



 
 

Les pages qui utilisent la foncion

http://www.iconecontemporaine.catho.be/public/





sources code   / source data   /  code page   / exemple



webtechnology