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 :

XmlHttpRequest et Print


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut XmlHttpRequest et Print
    Bonjour,

    Deja, voici le code sur lequel je travaille :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <script type="text/javascript">
     
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
     
    function imprime()
    {
    var fichier = file("test_print.html"); 
    print(fichier);
    }
     
    </script>
     
     <a href="#" onclick="javascript:imprime()">
    L'idee est de recuperer le contenu d'un fichier html et de l'imprimer... sans l'ouvrir.. d'ou l'interet du xmlhttprequest, ici..
    Mais ca ne m'imprime pas ma variable "fichier", ca m'imprime la page courante.. pas cool..

    Y'a t-il une possibilité de faire ca ? merci !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    tien .. à toi de l'adapter ... rappelle toi que le telechargement n'est pas intantané... tu ne peu pas utiliser de return ou de trck dans le genre...

    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
    17
    18
    19
    20
    21
    22
     
    var xhr_object = 0; // var globale..
     
    function ajaxFile(fichier) {
    	try{
    	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	}catch(e){
    	xhr_object = new XMLHttpRequest();
    	}
     
     
    	xhr_object.onreadystatechange = function(){
    		if(xhr_object.readyState == 4 && xhr_object.status == 200){
    		alert(xhr_object.responseText);
    		}
    	};
     
    	xhr_object.open("GET", fichier, true);
    	xhr_object.send(fichier);
    }
     
    ajaxFile('lapage');

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    heu, ok.. mais ca ne repond pas a ma question.. J'ai l'impression que tu as copié collé ton bout de code sans lire mon probleme

    Parce que la partie xmlhttprequest marche tres bien
    si je fais un
    ca marche impec..
    c'est le
    qui ne marche pas !


    Merci quand meme[/code]

  4. #4
    Membre actif
    Homme Profil pro
    PDG
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PDG
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Points : 225
    Points
    225
    Par défaut
    Elle existe cette fonction print() en javascript ?
    Je connais window.print() qui permet d'imprimer la fenêtre courante, mais pas print() :

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    ben c'est une partie du probleme, c'est que tu peux appeller

    Et ca imprime quand meme la fenetre courante... donc je me demandais si il y avait possibilité d'imprimer autre chose que la page courante.. sinon faut que je construise une sorte de pop up avec un window.print() classique.. mais plus long a faire, quand meme

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    toi ta pas lu ce que j'ai ecrit...

    quant tu fait send(null); le navigateur commence à dld ta page et continu l'execution... (il ne met pas javascript en "pause" en attendant; donc return : niet)
    Ce qui fait que "xhr_object.readyState == 4" est faux. Donc il retourne faux...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    non, pas possible...

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <script type="text/javascript">
     
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
     
    function imprime()
    {
    var fichier = file("test_print.html"); 
    alert(fichier);
    }
     
    </script>
     
     <a href="#" onclick="javascript:imprime()">
     	<img src="/ola/img/gui/btn_imprimer.gif" style="float: right; padding-bottom: 5px; padding-right: 15px;" border="0">
     </a>

    Avec ce code la (tu remarqueras le "alert(fichier)" tu as bien le resultat attendu, a savoir, le contenu du fichier test_print.html dans la fenetre d'alert...

    Donc le probleme ne vient pas de cette ligne la :

    Meme si je dois avouer que c'est un bout de code que j'ai recupere tout fait, et que je me contente de l'utiliser, sans tout comprendre

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    Je voi pas quoi te dire.. si sa marche (je confirme pour les fichiers texte en local) c'est par hazard.... d'ailleur si tu fait des recherches sur xmlhttprequest tu vera que tout les exemples utilisent onreadystatechange..

    d'ailleur tjr en local... sa ne marche plus pour les fichiers parsé (php, asp,..)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    ok autant pour moi en effet g mal lu la doc ^^ je cherche ...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    Oups, bon ben laissez tomber.. je vais faire autrement, un truc dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function imprime()
    {
    var fichier = file("test_print.html"); 
     
    nvlfenetr = window.open('', '', 'scrollbars=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, resizable=no, width=550, height=550');
    nvlfenetr.document.write ("<a href='#' onclick='window.print();'>Cliquez pour imprimer</a>");
    nvlfenetr.document.write (fichier);
    nvlfenetr.document.write ("<a href='#' onclick='window.close();'>Cliquez pour fermer</a>");
    }
    ca sera moins classe, mais plus simple a realiser.. on ouvre une nouvelle fenetre, on y inscrit le code du fichier et on ajoute les liens pour imprimer

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

Discussions similaires

  1. Le résultat de Print ne s'affiche pas...
    Par Red Bull dans le forum Langage
    Réponses: 9
    Dernier message: 15/06/2006, 18h56
  2. [langage] print %d
    Par kacedda dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2003, 10h12
  3. Print et Preview d'un rapport Rave
    Par joebarthib dans le forum Rave
    Réponses: 4
    Dernier message: 19/12/2002, 14h46
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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