IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Tableau HTML dans une POPUP


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut Tableau HTML dans une POPUP
    Bonjour,

    Je voudrais faire un aperçu avant impression de mon tableau HTML et j'ai un soucis avec ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function Popup(){
    	var tableau = document.getElementById("tableauCarte");
     
    	var donnee = tableau.innerHTML;
     
    	var maFenetre = window.open('', 'Mon catalogue de télécartes');
    	maFenetre.document.write('<html><head><title>Mon catalogue de télécartes</title>');
    	maFenetre.document.write('<link rel="stylesheet" href="style.css" type="text/css" />');
    	maFenetre.document.write('</head><body><table id="tableauCarte">');
    	maFenetre.document.write(donnee);
    	maFenetre.document.write('</table></body></html>');
    	maFenetre.print();
    	maFenetre.close();
    }
    Quand elle s’exécute elle m'ouvre une fenêtre popup avec mon tableau html mais celui ci étant plus grand qu'une page est couper en plein milieu de cellule !

    Merci d'avance pernotjln.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut essaye en incluant une balise style avec media screen.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function Popup(){
    	var tableau = document.getElementById("tableauCarte");
     
    	var donnee = tableau.innerHTML;
     
    	var maFenetre = window.open('', 'Mon catalogue de télécartes');
    	maFenetre.document.write('<html><head><title>Mon catalogue de télécartes</title>');
            maFenetre.document.write('<style>@media screen{table{display:block;visibility:visible;}}');
    	maFenetre.document.write('<link rel="stylesheet" href="style.css" type="text/css" />');
    	maFenetre.document.write('</head><body><table id="tableauCarte">');
    	maFenetre.document.write(donnee);
    	maFenetre.document.write('</table></body></html>');
    	maFenetre.print();
    	maFenetre.close();
    }
    Je n'ai pas testé, mais l'idée est au niveau du style.

    Bonne soirée

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    J'ai essayer avec ce code mais c'est toujours la même chose, le tableau est mal découpé. ^^

    PS : tu as oublié de refermer la balise style, j'ai galéré à le voir, mon tableau ne s'affichait plus. xD

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Attention à l'ouverture de la fenêtre
    Toujours tester si la fenêtre c'est ouverte
    sinon le script peut planter complètement

    de façon générale en programmation quelque soit le langage (même en javascript) on n'utilise un objet uniquement lorsqu'on a la garantie qu'il existe.

    donc dans ton code 1°) getElementById peut te retourner null
    et 2°) la fenêtre à peut être été bloqué par l'utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Popup(){
    	var tableau = document.getElementById("tableauCarte");
    	if(tableau)
    		var donnee = tableau.innerHTML;
    	}
     
    	var maFenetre = window.open('', 'Mon catalogue de télécartes');
    	if (maFenetre) {
    		...
    	}
    }
    A+JYT

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    perso je passerais par un popin et pas un popup ...
    du coup pour le print on bascule tous les élements de la page en display none pour le media screen et print, puis juste le popin en display block pour le popin en media print
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    Bonjour,
    il existe au moions, 2 solutions
    - CSS3 Module: Paged Media
    - le formatage de la sortie à la "mano" fonction des données disponibles en intégrant des page-break-after: always au bon endroit.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    Merci de vos réponses j'ai modifié mon code pour la vérification de l'existence du tableau et de la fenêtre.

    je pense faire avec des page-break-after mais je ne sais pas ou les mettre ?

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    Fais des tests de pagination pour voir ce que tu peux imprimer par page, gère une feuille de style pour media="print"...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Tableau HTML dans une boucle while
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/01/2011, 15h29
  2. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  3. Réponses: 2
    Dernier message: 10/01/2007, 17h06
  4. Affichage d'un tableau perl dans une page HTML
    Par Jim_Nastiq dans le forum Web
    Réponses: 7
    Dernier message: 13/04/2006, 11h27
  5. Ecrire dans un tableau html depuis une fonction js ?
    Par botanica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo