Loading page avec lightbox

Loading page avec lightbox - HTML/CSS - Programmation

Marsh Posté le 07-10-2008 à 14:52:48    

Bonjour ,  
 un problème auquel je ne trouve pas de solution :  
 
j'ai un fichier Javascript "lightbox" qui est le suivant :

Code :
  1. *--------------------------------------------------------------------------*/
  2. /* Lightbox  
  3. * This is a script for creating modal dialog windows (like the ones your operating
  4. * system uses)
  5. *  
  6. */
  7. var Lightbox = {
  8. /* hideAll - closes all open lightbox windows */
  9. hideAll: function(){
  10.  lboxes = document.getElementsByClassName('lbox')
  11.  lboxes.each(function(box){
  12.    Element.hide(box)
  13.   }
  14.  )
  15.  if ($('overlay')){
  16.   Element.remove('overlay');
  17.   }
  18. }
  19. }
  20. Lightbox.base = Class.create();
  21. Lightbox.base.prototype = {
  22. initialize: function(element, options){
  23.  //start by hiding all lightboxes
  24.  Lightbox.hideAll();
  25.  this.element = $(element);
  26.  this.options = Object.extend({
  27.   lightboxClassName : 'lightbox',
  28.   closeOnOverlayClick : false,
  29.   externalControl : false
  30.  }, options || {} )
  31.  //create the overlay
  32.  new Insertion.Before(this.element, "<div id='overlay' style='display:none;'></div>" );
  33. Element.addClassName(this.element, this.options.lightboxClassName)
  34.  //also add a default lbox class to the lightbox div so we can find and close all lightboxes if we need to
  35.  Element.addClassName(this.element, 'lbox')
  36.  //Tip: make sure the path to the close.gif image below is correct for your setup
  37.  closer = '<img id="close" src="http://blog.feedmarker.com/wp-content/themes/feedmarker/lightbox/images/close.gif" alt="Close" title="Close this window" />'
  38.  //insert the closer image into the div
  39.  new Insertion.Top(this.element, closer);
  40.  Event.observe($('close'), 'click', this.hideBox.bindAsEventListener(this) );
  41.  if (this.options.closeOnOverlayClick){
  42.   Event.observe($('overlay'), 'click', this.hideBox.bindAsEventListener(this) );
  43.  }
  44.  if (this.options.externalControl){
  45.   Event.observe($(this.options.externalControl), 'click', this.hideBox.bindAsEventListener(this) );
  46.  }
  47.  this.showBox();
  48. },
  49. showBox : function(){
  50.  //show the overlay
  51.    Element.show('overlay');
  52.  //center the lightbox
  53.    this.center();
  54.  
  55.     //show the lightbox
  56.    Element.show(this.element);
  57.    return false;
  58. },
  59. hideBox : function(evt){
  60.  Element.removeClassName(this.element, this.options.lightboxClassName)
  61.  Element.hide(this.element);
  62.  //remove the overlay element from the DOM completely
  63.  Element.remove('overlay');
  64.  return false;
  65. },
  66. center : function(){
  67.  var my_width  = 0;
  68.  var my_height = 0;
  69.  if ( typeof( window.innerWidth ) == 'number' ){
  70.   my_width  = window.innerWidth;
  71.   my_height = window.innerHeight;
  72.  }else if ( document.documentElement &&
  73.     ( document.documentElement.clientWidth ||
  74.       document.documentElement.clientHeight ) ){
  75.   my_width  = document.documentElement.clientWidth;
  76.   my_height = document.documentElement.clientHeight;
  77.  }
  78.  else if ( document.body &&
  79.    ( document.body.clientWidth || document.body.clientHeight ) ){
  80.   my_width  = document.body.clientWidth;
  81.   my_height = document.body.clientHeight;
  82.  }
  83.  this.element.style.position = 'absolute';
  84.  this.element.style.zIndex   = 99;
  85.  var scrollY = 0;
  86.  if ( document.documentElement && document.documentElement.scrollTop ){
  87.   scrollY = document.documentElement.scrollTop;
  88.  }else if ( document.body && document.body.scrollTop ){
  89.   scrollY = document.body.scrollTop;
  90.  }else if ( window.pageYOffset ){
  91.   scrollY = window.pageYOffset;
  92.  }else if ( window.scrollY ){
  93.   scrollY = window.scrollY;
  94.  }
  95.  var elementDimensions = Element.getDimensions(this.element);
  96.  var setX = ( my_width  - elementDimensions.width  ) / 2;
  97.  var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;
  98.  setX = ( setX < 0 ) ? 0 : setX;
  99.  setY = ( setY < 0 ) ? 0 : setY;
  100.  this.element.style.left = setX + "px";
  101.  this.element.style.top  = setY + "px";
  102. }
  103. }


 
 et j'aimerai utilisé ce script pour qu'il s'affiche pendant le loading des requet XMLHTTPREQUEST :
 
 donc j'ai creer un div avec mon contenu image + text  
 

Code :
  1. echo "<div id='lightbox' style='display:none'>Loading...</div>" ;


 
 le problème ce situe ici ::::

 
j'arrive a afficher le div pendant le téléchargement de donné mais j'arrive pas a l'enlevé :s a la fin de la requette :
 

Code :
  1. var xhr_obj = null;
  2. if(window.XMLHttpRequest)  //Firefox
  3. {
  4.     xhr_obj = new XMLHttpRequest();
  5. }
  6. else if(window.ActiveXObject) // Internet Explorer
  7. {
  8.     try {
  9.  xhr_obj= new ActiveXObject("Msxml2.XMLHTTP" );
  10.  }
  11. catch (e) {
  12.  xhr_obj = new ActiveXObject("Microsoft.XMLHTTP" );
  13.  }
  14. }
  15.   else {
  16.     alert("Votre navigateur ne supporte pas les objets XMLHttpRequest" );
  17.     return;
  18. }
  19. /*
  20. */
  21. var data     = null;
  22. var server = document.getElementById("lsserver" ).value ;
  23. var feature = document.getElementById("feature" ).value ;
  24. data = page+"?server="+server+"&feature="+feature+"&id="+id+"&timestamp=" + timestamp+""+args ;
  25. var load = new Lightbox.base(document.getElementById("lightbox" )).showBox() ;
  26. xhr_obj.open("GET", data, true);  // Mode synchone
  27. /**/
  28.    xhr_obj.onreadystatechange = function()
  29. {
  30.  if (xhr_obj.readyState == 4) {
  31.  load.hideBox();
  32.   if (xhr_obj.status ==200) {
  33.    if( id.search('update') !=-1 || id == 'os' || id =='CCVersion' || id== 'replicasGR' || id== 'replicasServer' || id=='triggersName' || id== 'triggersVob' || id == 'oploglimitvalue')
  34.    {
  35.     document.getElementById('divTab').innerHTML = xhr_obj.responseText;
  36.     }
  37.   }
  38.   else {
  39.    alert("Problem: " + xhr_obj.statusText);
  40.   }
  41.  }
  42.  }
  43. xhr_obj.send(null);
  44. }

Reply

Marsh Posté le 07-10-2008 à 14:52:48   

Reply

Marsh Posté le 07-10-2008 à 19:17:14    

Code :
  1. var xhr_obj = null;
  2. if(window.XMLHttpRequest)  //Firefox
  3. {
  4.     xhr_obj = new XMLHttpRequest();
  5. }
  6. else if(window.ActiveXObject) // Internet Explorer
  7. {
  8.     try {
  9.  xhr_obj= new ActiveXObject("Msxml2.XMLHTTP" );
  10.  }
  11. catch (e) {
  12.  xhr_obj = new ActiveXObject("Microsoft.XMLHTTP" );
  13.  }
  14. }
  15.   else {
  16.     alert("Votre navigateur ne supporte pas les objets XMLHttpRequest" );
  17.     return;
  18. }
  19. /*
  20. */
  21. var data     = null;
  22. var server = document.getElementById("lsserver" ).value ;
  23. var feature = document.getElementById("feature" ).value ;
  24. data = page+"?server="+server+"&feature="+feature+"&id="+id+"&timestamp=" + timestamp+""+args ;
  25. var load = new Lightbox.base(document.getElementById("lightbox" ));
  26.         load.showBox() ;
  27. xhr_obj.open("GET", data, true);  // Mode synchone
  28. /**/
  29.    xhr_obj.onreadystatechange = function()
  30. {
  31.  if (xhr_obj.readyState == 4) {
  32.  load.hideBox();
  33.   if (xhr_obj.status ==200) {
  34.    if( id.search('update') !=-1 || id == 'os' || id =='CCVersion' || id== 'replicasGR' || id== 'replicasServer' || id=='triggersName' || id== 'triggersVob' || id == 'oploglimitvalue')
  35.    {
  36.     document.getElementById('divTab').innerHTML = xhr_obj.responseText;
  37.     }
  38.   }
  39.   else {
  40.    alert("Problem: " + xhr_obj.statusText);
  41.   }
  42.  }
  43.  }
  44. xhr_obj.send(null);
  45. }


 
Essaye ca car attribué une fonction a une variable :D c'est pas top :D
imagine dans ton schema ca fait  
Lightbox.base(document.getElementById("lightbox" )).showBox().hideBox()
 
Cherche l'erreur :D [:czajczynski]  


---------------
Recette cookeo Recette de cuisine
Reply

Sujets relatifs:

Leave a Replay

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