les fonctions d'envoi : l'impression
fonctionne avec
sources code / source data / code page / exemple
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>');
}
// End -->
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 -->
</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>
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