11548 sujets

JavaScript, DOM et API Web HTML5

bonjour à tout le monde,

mon problème est que pour imprimer une facture, j'ouvre une nouvelle fenêtre dans laquelle j'affiche seulement les données de la facture contenu dans un <div> (j'enlève le menu et tout et tout.) le problème proprement dit est que lorsque j'ouvre la page je n'arrive pas à associer une feuille de style à cette nouvelle fenêtre.

pour vous aider voici les bout de code permettant de récupérer les données de la facture et de les renvoyer vers une nouvelle fenêtre :
function imprime_zone(titre, obj) 
{

var zi = document.getElementById(obj).innerHTML;

var f = window.open("", "ZoneImpr", "height=500, width=600,toolbar=0, menubar=0, scrollbars=1, resizable=1,status=0, location=0, left=10, top=10");

f.document.body.style.color = '#000000';
f.document.body.style.backgroundColor = '#FFFFFF';
f.document.body.style.padding = "10px";


f.document.title = titre;
f.document.body.innerHTML += " " + zi + " ";
f.window.print();
// f.window.close();
return true;
} 


le souci c'est que je débute en javascript et je n'ai pas trouvé le moyen d'associer la feuille de style à la fenêtre qui s'ouvre.

ensuite j'ai essayé d'ajouter la balise html qui relie la page à la feuille de style directement avec la methode innerHTML mais ça n'a pas marché, j'ai vus sur le forum un cas similaire ici
mais ça ne m'a pas aidé.


merci d'avance.

max.
Modérateur
Bonsoir krazymax et bienvenue, Smiley cligne

Pourquoi passes-tu par une popup alors qu'une feuille de style dédiée à l'impression semble suffire ?
merci,

je passe par un popup parce que ça me permet d'imprimer seulement ce qui est contenu entre mes deux balises <div> en éliminant le menu, l'entête et le pied de page.

Il y a peut être une solution qui permet de faire ça avec seulement la feuille de style mais je ne la connais pas.

il faudrait alors soit que j'affiche ma page avec seulement la facture avec une feuille de style dédiée à l'impression soit que je formate mon contenu en html vu que la methode innerHTML récupère apparement le contenu html, mais je pensé que c'était possible d'associer une feuille de style à un popup en javascript.

qu'en pense tu?
Bonsoir
Le plus simple est de préparer ta page "Facture.htm" avec un div et une feuille de style associée puis de remplir ton div avec les élements par toto.innerHTML par exemple comme tu le fais.

A l'appel var f = window.open("Facture.htm", "ZoneImpr", "height=500, width=600,toolbar=0, menubar=0, scrollbars=1, resizable=1,status=0, location=0, left=10, top=10");
tu auras déjà tes éléements