[javascript] écrire à la fin du document

écrire à la fin du document [javascript] - HTML/CSS - Programmation

Marsh Posté le 29-11-2005 à 17:16:18    

hello !
 
je cherche à faire un script d'envoi d'images (classique...)
mais avant de l'envoyer, je veux que le client puisse visualiser son image.
 
donc j'utilise le javascript suivant :
 

Code :
  1. <html>
  2. <head>
  3. <script language="javascript" type="text/javascript">
  4. function voir(){
  5. Fc=window.open("","Fc","resizable=no" );
  6. Fc.document.write('<html><body><center><table width="600"><tr><td align="center">');
  7. nav=navigator.appName.substring(0,3);
  8. if((nav=="Net" )||(nav=="Moz" )){
  9. Fc.document.write('<img name="apercu" src="file:///'+document.f1.fichier1.value+'">') ;
  10. }
  11. else
  12. {
  13. Fc.document.write('<img name="apercu" src="'+document.f1.fichier1.value+'">') ;
  14. }
  15. Fc.document.write('<br/><br/><form><input type="button" value="Fermer" onClick="parent.close()"></form><font size=2 face="arial" color="#0000FF">Nom et chemin de l\'image<br>'+document.f1.fichier1.value+'</font></td></tr></table></center></body></html>');
  16. Fc.document.close();
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <form enctype="multipart/form-data" action="" method="post" name="f1">
  22. Votre fichier doit être au format jpg<br>Choisir le fichier : <input name="fichier1" type="file"><br /><br /><input type="button" value="Aperçu " onclick="voir()">
  23. <input type="submit" value="Envoyer le fichier">
  24. </form>
  25. </html>
  26. </head>


 
Le problème est que quand on appuie sur "aperçu", c'est une nouvelle fenetre qui s'ouvre.
 
Je voudrais faire en sorte que l'image s'affiche à la suite du document, dans la même fenêtre.
 
Si je retire "window.open" et que je ne mets quedes documents.write, ca ne marche pas.
sur certains tutos, il est marqué qu'il faut mettre le code à l'endroit où l'on veut que ca écrive, mais moi ca écrit à la suite de la pression d'un bouton (bouton aperçu), donc je ne sais pas où placer correctement mon code.
 
quelqu'un peut-il m'aider ?
:jap:

Reply

Marsh Posté le 29-11-2005 à 17:16:18   

Reply

Marsh Posté le 02-12-2005 à 10:44:28    

ok
 
devant l'enthousiasme général, je me suis retroussé les manches, et j'ai fini par trouver une solution avec en plus le redimensionnement de l'image à la volée, le tout en javascript :
 

Code :
  1. <html>
  2. <head>
  3. <script language="javascript" type="text/javascript">
  4. function apercuIframe() {
  5. parent.tdc.document.close();
  6. redimImage(document.f1.fichier1.value, 100, 100);
  7. parent.tdc.document.close()
  8. }
  9. function redimImage(inImg, inMW, inMH)
  10. {
  11.   // Cette function recoit 3 parametres
  12.   // inImg : Chemin relatif de l'image
  13.   // inMW  : Largeur maximale
  14.   // inMH   : Hauteur maximale
  15.   var maxWidth = inMW;
  16.   var maxHeight = inMH;
  17.   // Declarations des variables "Nouvelle Taille"
  18.   var dW = 0;
  19.   var dH = 0;
  20.   // Declaration d'un objet Image
  21.   var oImg = new Image();
  22.   // Affectation du chemin de l'image a l'objet
  23.   oImg.src = inImg;
  24.   // On recupere les tailles reelles
  25.   var h = dH = oImg.height;
  26.   var w = dW = oImg.width;
  27.   // Si la largeur ou la hauteur depasse la taille maximale
  28.   if ((h >= maxHeight) || (w >= maxWidth)) {
  29.     // Si la largeur et la hauteur depasse la taille maximale
  30.     if ((h >= maxHeight) && (w >= maxWidth)) {
  31.       // On cherche la plus grande valeur
  32.       if (h > w) {
  33.         dH = maxHeight;
  34.         // On recalcule la taille proportionnellement
  35.         dW = parseInt((w * dH) / h, 10);
  36.       } else {
  37.         dW = maxWidth;
  38.         // On recalcule la taille proportionnellement
  39.         dH = parseInt((h * dW) / w, 10);
  40.       }
  41.     } else if ((h > maxHeight) && (w < maxWidth)) {
  42.       // Si la hauteur depasse la taille maximale
  43.       dH = maxHeight;
  44.         // On recalcule la taille proportionnellement
  45.       dW = parseInt((w * dH) / h, 10);
  46.     } else if ((h < maxHeight) && (w > maxWidth)) {
  47.       // Si la largeur depasse la taille maximale
  48.       dW = maxWidth;
  49.         // On recalcule la taille proportionnellement
  50.       dH = parseInt((h * dW) / w, 10);
  51.     }
  52.   }
  53.   // On ecrit l'image dans le document
  54.   parent.tdc.document.write("<img src=\"" + inImg + "\" width=\"" + dW + "\" height=\"" + dH + "\" border=\"0\">" );
  55. };
  56. </script>
  57. </head>
  58. <body>
  59. <form enctype="multipart/form-data" action="" method="post" name="f1">
  60. Votre fichier doit être au format jpg<br>Choisir le fichier : <input name="fichier1" type="file" onchange="apercuIframe()"><br /><br />
  61. <input type="submit" value="Envoyer le fichier">
  62. <br>
  63. <br>
  64. <IFRAME SRC="./images/vide.gif" border='0' frameborder='0' align='left' NAME="tdc" ID="iframe"></IFRAME>
  65. </form>
  66. </body>
  67. </head>
  68. </html>


 
si vous avez des remarques ou des suggestions...
 
:jap:

Reply

Marsh Posté le 02-12-2005 à 10:46:51    

nabbo a écrit :

sur certains tutos, il est marqué qu'il faut mettre le code à l'endroit où l'on veut que ca écrive,


Sur les tutos de qualités, il est surtout indiqué qu'il ne faut plus utiliser document.write, qui date de 1995 et qui roule en Renault 12, mais qu'il faut utiliser par exemples des fonctions DOM, ou utiliser la propriété innerHTML d'un élément pour réellement écrire où on veut, et surtout paraître plus moderne, montrer qu'on vit en 2005, et qu'on roule en Laguna 2 Phase 2 1.9 dCi...

Reply

Marsh Posté le 20-12-2005 à 00:47:46    

:hello:
 
je reviens à la charge... ma Renault 12 passe pas sous Firefox :D
 
tu connaitrais pas un bon concessionnaire qui vende du javascript récent "kipassesousfirefox" ?
 
merci :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed