Des livres incontournables pour tout maîtriser

  • Flexbox, plongez dans les CSS modernes
  • HTML5
  • CSS3 pratique du design web
  • CSS avancées - vers HTML5 et CSS3
  • Memento CSS 3
  • Memento HTML5
Auteur
Francois44
#
94 Posts
Bonjour à tous,

j'ai un petit soucis avec un script JS: lorsque je charge ma page avec le script en question sur firefox, opéra ou netscape, tout fonctionne bien.

Le souci, comme vous vous en doutez vient de IE (toutes versions confondu). La page n'arrive pas à se charger j'ai un message (dans un alert) du type
a écrit :

Internet Explorer ne peut pas ouvrir le site xxxxxxx
Opération abandonnée


J'ai testé la même page sans le javascript en question et ça fonctionne. Je ne vois pas d'où cela peut venir ... et je suis ouvert à toutes suggestions et/ou pistes.

Merci d'avance


Ci-dessous, le javascript en question (il s'agit d'un backoffice, donc je ne peux pas mettre un exemple en ligne). Le javascript permet de faire du "drag and drop" sur un arbre (plusieurs listes <ul> imbriqué) Et de sauvegarder les changement en AJAX (nécessite prototype pour l'ajax).

var objTreeDragDrop;
var intTreeDragDropCompteurUl = 0;
var intTreeDragDropIdNode = 1;
  
/**
* Constructeur
*
* @return void
*/
function treeDragDrop_class()
{
  //PROPRIETEES
  var strUrlUpdateStructure;
  var strIdConteneurUpdateStructureReponse;
  var strVariableUpdateStructure;
  var objParamsUpdateStructure;
  var boolAjaxUpdateStructure;
  
  var strIdTree;
  var imageFolder;
  var folderImage;
  var plusImage;
  var minusImage;
  var maximumDepth;
  var dragNode_source;
  var dragNode_parent;
  var dragNode_sourceNextSib;
  var dragNode_noSiblings;
  var ajaxObjects;
  
  var dragNode_destination;
  var floatingContainer;
  var dragDropTimer;
  var dropTargetIndicator;
  var insertAsSub;
  var indicator_offsetX;
  var indicator_offsetX_sub;
  var indicator_offsetY;
  
  var messageMaximumDepthReached;
  var filePathRenameItem;
  var filePathDeleteItem;
  var additionalRenameRequestParameters = {};
  var additionalDeleteRequestParameters = {};

  var renameAllowed;
  var deleteAllowed;
  var currentlyActiveItem;
  var currentItemToEdit;		// Reference to item currently being edited(example: renamed)
  var helpObj;
  
  //INITIALISATION 
  this.boolAjaxUpdateStructure = false;
  this.imageFolder = 'images/';
  this.folderImage = 'dhtmlgoodies_folder.gif';
  this.plusImage = 'dhtmlgoodies_plus.gif';
  this.minusImage = 'dhtmlgoodies_minus.gif';
  this.maximumDepth = 6;
  
  this.floatingContainer = document.createElement('UL');
  this.floatingContainer.style.position = 'absolute';
  this.floatingContainer.style.display='none';
  this.floatingContainer.id = 'floatingContainer';
  this.insertAsSub = false;
  document.body.appendChild(this.floatingContainer);
  this.dragDropTimer = -1;
  this.dragNode_noSiblings = false;
  this.currentItemToEdit = false;
  
  if(document.all){
    this.indicator_offsetX = 2;	// Offset position of small black lines indicating where nodes would be dropped.
    this.indicator_offsetX_sub = 4;
    this.indicator_offsetY = 2;
  }else{
    this.indicator_offsetX = 1;	// Offset position of small black lines indicating where nodes would be dropped.
    this.indicator_offsetX_sub = 3;
    this.indicator_offsetY = 2;			
  }
  if(navigator.userAgent.indexOf('Opera')>=0){
    this.indicator_offsetX = 2;	// Offset position of small black lines indicating where nodes would be dropped.
    this.indicator_offsetX_sub = 3;
    this.indicator_offsetY = -7;				
  }
  this.messageMaximumDepthReached = ''; // Use '' if you don't want to display a message 
  
  this.renameAllowed = true;
  this.deleteAllowed = true;
  this.currentlyActiveItem = false;
  this.filePathRenameItem = 'folderTree_updateItem.php';
  this.filePathDeleteItem = 'folderTree_updateItem.php';
  this.ajaxObjects = new Array();
  this.helpObj = false;
  
  this.RENAME_STATE_BEGIN = 1;
  this.RENAME_STATE_CANCELED = 2;
  this.RENAME_STATE_REQUEST_SENDED = 3;
  this.renameState = null;
}

//METHODES 
treeDragDrop_class.prototype =
{
  addEvent : function(whichObject,eventType,functionName)
  { 
    if(whichObject.attachEvent){ 
      whichObject['e'+eventType+functionName] = functionName; 
      whichObject[eventType+functionName] = function(){whichObject['e'+eventType+functionName]( window.event );} 
      whichObject.attachEvent( 'on'+eventType, whichObject[eventType+functionName] ); 
    } else 
      whichObject.addEventListener(eventType,functionName,false); 	    
  },	
  	
  removeEvent : function(whichObject,eventType,functionName)
  { 
    if(whichObject.detachEvent){ 
      whichObject.detachEvent('on'+eventType, whichObject[eventType+functionName]); 
      whichObject[eventType+functionName] = null; 
    } else 
      whichObject.removeEventListener(eventType,functionName,false); 
  },	
  
  Get_Cookie : function(name) { 
     var start = document.cookie.indexOf(name+"="); 
     var len = start+name.length+1; 
     if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
     if (start == -1) return null; 
     var end = document.cookie.indexOf(";",len); 
     if (end == -1) end = document.cookie.length; 
     return unescape(document.cookie.substring(len,end)); 
  },
  
  // This function has been slightly modified
  Set_Cookie : function(name,value,expires,path,domain,secure) { 
    expires = expires * 60*60*24*1000;
    var today = new Date();
    var expires_date = new Date( today.getTime() + (expires) );
      var cookieString = name + "=" +escape(value) + 
         ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
         ( (path) ? ";path=" + path : "") + 
         ( (domain) ? ";domain=" + domain : "") + 
         ( (secure) ? ";secure" : ""); 
      document.cookie = cookieString; 
  },
  
  setRenameAllowed : function(renameAllowed)
  {
    this.renameAllowed = renameAllowed;			
  },
  
  setDeleteAllowed : function(deleteAllowed)
  {
    this.deleteAllowed = deleteAllowed;	
  },
  
  setMaximumDepth : function(maxDepth)
  {
    this.maximumDepth = maxDepth;	
  },
  
  setMessageMaximumDepthReached : function(newMessage)
  {
    this.messageMaximumDepthReached = newMessage;
  },	
  
  setImageFolder : function(path)
  {
    this.imageFolder = path;	
  },
  
  setFolderImage : function(imagePath)
  {
    this.folderImage = imagePath;			
  },
  
  setPlusImage : function(imagePath)
  {
    this.plusImage = imagePath;				
  },
  
  setMinusImage : function(imagePath)
  {
    this.minusImage = imagePath;			
  },		
  
  setTreeId : function(strIdTree)
  {
    this.strIdTree = strIdTree;			
  },
  
  expandAll : function()
  {
    var menuItems = document.getElementById(this.strIdTree).getElementsByTagName('LI');
    for(var no=0;no<menuItems.length;no++){
      var subItems = menuItems[no].getElementsByTagName('UL');
      if(subItems.length>0 && subItems[0].style.display!='block'){
        objTreeDragDrop.showHideNode(false,menuItems[no].id);
      }			
    }
  },
  
  collapseAll : function()
  {
    var menuItems = document.getElementById(this.strIdTree).getElementsByTagName('LI');
    for(var no=0;no<menuItems.length;no++){
      var subItems = menuItems[no].getElementsByTagName('UL');
      if(subItems.length>0 && subItems[0].style.display=='block'){
        objTreeDragDrop.showHideNode(false,menuItems[no].id);
      }			
    }		
  },
  
  //Find top pos of a tree node
  getTopPos : function(obj){
    var top = obj.offsetTop/1;
    while((obj = obj.offsetParent) != null){
      if(obj.tagName!='HTML')top += obj.offsetTop;
    }			
    if(document.all)top = top/1 + 13; else top = top/1 + 4;		
    return top;
  },	
  
  //Find left pos of a tree node
  getLeftPos : function(obj){
    var left = obj.offsetLeft/1 + 1;
    while((obj = obj.offsetParent) != null){
      if(obj.tagName!='HTML')left += obj.offsetLeft;
    }
        
    if(document.all)left = left/1 - 2;
    return left;
  },
  
  showHideNode : function(e,inputId)
  {
    if(inputId){
      if(!document.getElementById(inputId))return;
      thisNode = document.getElementById(inputId).getElementsByTagName('IMG')[0]; 
    }else {
      thisNode = this;
      if(this.tagName=='A')thisNode = this.parentNode.getElementsByTagName('IMG')[0];	
      
    }
    if(thisNode.style.visibility=='hidden')return;		
    var parentNode = thisNode.parentNode;
    inputId = parentNode.id.replace(/[^0-9]/g,'');
    if(thisNode.src.indexOf(objTreeDragDrop.plusImage)>=0){
      thisNode.src = thisNode.src.replace(objTreeDragDrop.plusImage,objTreeDragDrop.minusImage);
      var ul = parentNode.getElementsByTagName('UL')[0];
      ul.style.display='block';
      if(!initExpandedNodes)initExpandedNodes = ',';
      if(initExpandedNodes.indexOf(',' + inputId + ',')<0) initExpandedNodes = initExpandedNodes + inputId + ',';
    }else{
      thisNode.src = thisNode.src.replace(objTreeDragDrop.minusImage,objTreeDragDrop.plusImage);
      parentNode.getElementsByTagName('UL')[0].style.display='none';
      initExpandedNodes = initExpandedNodes.replace(',' + inputId,'');
    }	
    objTreeDragDrop.Set_Cookie('dhtmlgoodies_expandedNodes',initExpandedNodes,500);			
    return false;						
  },
  
  //Initialize drag
  initDrag : function(e)
  {
    if(document.all)e = event;	
    
    var subs = objTreeDragDrop.floatingContainer.getElementsByTagName('LI');
    if(subs.length>0){
      if(objTreeDragDrop.dragNode_sourceNextSib){
        objTreeDragDrop.dragNode_parent.insertBefore(objTreeDragDrop.dragNode_source,objTreeDragDrop.dragNode_sourceNextSib);
      }else{
        objTreeDragDrop.dragNode_parent.appendChild(objTreeDragDrop.dragNode_source);
      }					
    }
    
    objTreeDragDrop.dragNode_source = this.parentNode;
    objTreeDragDrop.dragNode_parent = this.parentNode.parentNode;
    objTreeDragDrop.dragNode_sourceNextSib = false;

    
    if(objTreeDragDrop.dragNode_source.nextSibling)objTreeDragDrop.dragNode_sourceNextSib = objTreeDragDrop.dragNode_source.nextSibling;
    objTreeDragDrop.dragNode_destination = false;
    objTreeDragDrop.dragDropTimer = 0;
    objTreeDragDrop.timerDrag();
    return false;
  },
  
  timerDrag : function()
  {	
    if(this.dragDropTimer>=0 && this.dragDropTimer<10){
      this.dragDropTimer = this.dragDropTimer + 1;
      setTimeout('objTreeDragDrop.timerDrag()',20);
      return;
    }
    if(this.dragDropTimer==10)
    {
      objTreeDragDrop.floatingContainer.style.display='block';
      objTreeDragDrop.floatingContainer.appendChild(objTreeDragDrop.dragNode_source);	
    }
  },
  
  moveDragableNodes : function(e)
  {
    if(objTreeDragDrop.dragDropTimer<10)return;
    if(document.all)e = event;
    dragDrop_x = e.clientX/1 + 5 + document.body.scrollLeft;
    dragDrop_y = e.clientY/1 + 5 + document.documentElement.scrollTop;	
        
    objTreeDragDrop.floatingContainer.style.left = dragDrop_x + 'px';
    objTreeDragDrop.floatingContainer.style.top = dragDrop_y + 'px';
    
    var thisObj = this;
    if(thisObj.tagName=='A' || thisObj.tagName=='IMG')thisObj = thisObj.parentNode;

    objTreeDragDrop.dragNode_noSiblings = false;
    var tmpVar = thisObj.getAttribute('noSiblings');
    if(!tmpVar)tmpVar = thisObj.noSiblings;
    if(tmpVar=='true')objTreeDragDrop.dragNode_noSiblings=true;
        
    if(thisObj && thisObj.id)
    {
      objTreeDragDrop.dragNode_destination = thisObj;
      var img = thisObj.getElementsByTagName('IMG')[1];
      var tmpObj= objTreeDragDrop.dropTargetIndicator;
      tmpObj.style.display='block';
      
      var eventSourceObj = this;
      if(objTreeDragDrop.dragNode_noSiblings && eventSourceObj.tagName=='IMG')eventSourceObj = eventSourceObj.nextSibling;
      
      var tmpImg = tmpObj.getElementsByTagName('IMG')[0];
      if(this.tagName=='A' || objTreeDragDrop.dragNode_noSiblings){
        tmpImg.src = tmpImg.src.replace('ind1','ind2');	
        objTreeDragDrop.insertAsSub = true;
        tmpObj.style.left = (objTreeDragDrop.getLeftPos(eventSourceObj) + objTreeDragDrop.indicator_offsetX_sub) + 'px';
      }else{
        tmpImg.src = tmpImg.src.replace('ind2','ind1');
        objTreeDragDrop.insertAsSub = false;
        tmpObj.style.left = (objTreeDragDrop.getLeftPos(eventSourceObj) + objTreeDragDrop.indicator_offsetX) + 'px';
      }
      
      
      tmpObj.style.top = (objTreeDragDrop.getTopPos(thisObj) + objTreeDragDrop.indicator_offsetY) + 'px';
    }
    
    return false;
    
  },
  
  dropDragableNodes:function()
  {
    if(objTreeDragDrop.dragDropTimer<10)
    {				
      objTreeDragDrop.dragDropTimer = -1;
      return;
    }
    
    var showMessage = false;
    if(objTreeDragDrop.dragNode_destination)
    {
      // Check depth
      var countUp = objTreeDragDrop.dragDropCountLevels(objTreeDragDrop.dragNode_destination,'up');
      var countDown = objTreeDragDrop.dragDropCountLevels(objTreeDragDrop.dragNode_source,'down');
      var countLevels = countUp/1 + countDown/1 + (objTreeDragDrop.insertAsSub?1:0);		
      
      if(countLevels>objTreeDragDrop.maximumDepth)
      {
        objTreeDragDrop.dragNode_destination = false;
        showMessage = true; 	// Used later down in this function
      }
    }
    
    strDebugAction = '';
    strAction = '';
    if(objTreeDragDrop.dragNode_destination)
    {		
      if(objTreeDragDrop.insertAsSub)
      {
        var uls = objTreeDragDrop.dragNode_destination.getElementsByTagName('UL');
        if(uls.length>0)
        {
          ul = uls[0];
          ul.style.display='block';
          
          var lis = ul.getElementsByTagName('LI');

          if(lis.length>0)
          {
            // Sub elements exists - drop dragable node before the first one
            ul.insertBefore(objTreeDragDrop.dragNode_source,lis[0]);
            strDebugAction = 'passe en premier fils de';
            strAction = 'firstchild';
          }
          else
          {
            // No sub exists - use the appendChild method - This line should not be executed unless there's something wrong in the HTML, i.e empty <ul>
            ul.appendChild(objTreeDragDrop.dragNode_source);	
          }
        }
        else
        {
          var ul = document.createElement('UL');
          ul.style.display='block';
          objTreeDragDrop.dragNode_destination.appendChild(ul);
          ul.appendChild(objTreeDragDrop.dragNode_source);
          strDebugAction = 'passe en premier fils de';
          strAction = 'firstchild';
        }
        var img = objTreeDragDrop.dragNode_destination.getElementsByTagName('IMG')[0];					
        img.style.visibility='visible';
        img.src = img.src.replace(objTreeDragDrop.plusImage,objTreeDragDrop.minusImage);					
      }
      else
      {
        if(objTreeDragDrop.dragNode_destination.nextSibling)
        {
          var nextSib = objTreeDragDrop.dragNode_destination.nextSibling;
          nextSib.parentNode.insertBefore(objTreeDragDrop.dragNode_source,nextSib);
          strDebugAction = 'passe en frere (apres) de';
          strAction = 'nextbrother';
        }
        else
        {
          objTreeDragDrop.dragNode_destination.parentNode.appendChild(objTreeDragDrop.dragNode_source);
          strDebugAction = 'passe en frere (apres) de';
          strAction = 'nextbrother';
        }
      }	
      //Clear parent object
      var tmpObj = objTreeDragDrop.dragNode_parent;
      var lis = tmpObj.getElementsByTagName('LI');
      if(lis.length==0)
      {
        var img = tmpObj.parentNode.getElementsByTagName('IMG')[0];
        img.style.visibility='hidden';	// Hide [+],[-] icon
        tmpObj.parentNode.removeChild(tmpObj);						
      }
      
      //envoi AJAX
      if(objTreeDragDrop.boolAjaxUpdateStructure == true && strAction!='')
      {
        var strNumericIdSource = objTreeDragDrop.dragNode_source.id.replace(/[^0-9]/gi,'');
        var strNumericIdCible = objTreeDragDrop.dragNode_destination.id.replace(/[^0-9]/gi,'');
        var strUrlAjax = objTreeDragDrop.strUrlUpdateStructure;
        if(strUrlAjax.indexOf('?') > -1)
          strUrlAjax += '&';
        else
          strUrlAjax += '?';
        strUrlAjax +=  objTreeDragDrop.strVariableUpdateStructure + "=" + strNumericIdSource + "|" + strAction + "|" + strNumericIdCible
        //alert(strUrlAjax);
        //alert(objTreeDragDrop.dragNode_source.id + ' ' + strDebugAction + ' ' + objTreeDragDrop.dragNode_destination.id);
        objTreeDragDrop.sendAjax(objTreeDragDrop.strIdConteneurUpdateStructureReponse, strUrlAjax, objTreeDragDrop.objParamsUpdateStructure);
      }
    }
    else
    {
      // Putting the item back to it's original location
      if(objTreeDragDrop.dragNode_sourceNextSib)
      {
        objTreeDragDrop.dragNode_parent.insertBefore(objTreeDragDrop.dragNode_source,objTreeDragDrop.dragNode_sourceNextSib);
      }
      else
      {
        objTreeDragDrop.dragNode_parent.appendChild(objTreeDragDrop.dragNode_source);
      }			 
    }
    
    objTreeDragDrop.dropTargetIndicator.style.display='none';		
    objTreeDragDrop.dragDropTimer = -1;	
    if(showMessage && objTreeDragDrop.messageMaximumDepthReached)
    {
      alert(objTreeDragDrop.messageMaximumDepthReached);
    }
  },
  
  createDropIndicator : function()
  {
    this.dropTargetIndicator = document.createElement('DIV');
    this.dropTargetIndicator.style.position = 'absolute';
    this.dropTargetIndicator.style.display='none';			
    var img = document.createElement('IMG');
    img.src = this.imageFolder + 'dragDrop_ind1.gif';
    img.id = 'dragDropIndicatorImage';
    this.dropTargetIndicator.appendChild(img);
    document.body.appendChild(this.dropTargetIndicator);
    
  },
  
  dragDropCountLevels : function(obj,direction,stopAtObject){
    var countLevels = 0;
    if(direction=='up'){
      while(obj.parentNode && obj.parentNode!=stopAtObject){
        obj = obj.parentNode;
        if(obj.tagName=='UL')countLevels = countLevels/1 +1;
      }		
      return countLevels;
    }	
    
    if(direction=='down'){ 
      var subObjects = obj.getElementsByTagName('LI');
      for(var no=0;no<subObjects.length;no++){
        countLevels = Math.max(countLevels,objTreeDragDrop.dragDropCountLevels(subObjects[no],"up",obj));
      }
      return countLevels;
    }	
  },
  
  cancelEvent : function()
  {
    return false;	
  },
  
  cancelSelectionEvent : function()
  {
    
    if(objTreeDragDrop.dragDropTimer<10)return true;
    return false;	
  },
  
  getNodeOrders : function(initObj,saveString)
  {
    if(!saveString)var saveString = '';
    if(!initObj)
    {
      initObj = document.getElementById(this.strIdTree);
    }
    
    var lis = initObj.getElementsByTagName('LI');
    if(lis.length>0)
    {
      var li = lis[0];
      while(li)
      {
        if(li.id)
        {
          if(saveString.length>0)
            saveString = saveString + ',';
          
          var numericID = li.id.replace(/[^0-9]/gi,'');
          if(numericID.length==0)
            numericID='ROOT';
          var numericParentID = li.parentNode.parentNode.id.replace(/[^0-9]/gi,'');
          if(numericID!='0')
          {
            saveString = saveString + numericID;
            saveString = saveString + '-';
            
            if(li.parentNode.id!=this.strIdTree)
              saveString = saveString + numericParentID;
            else
              saveString = saveString + '0';
          }
          
          var ul = li.getElementsByTagName('UL');
          if(ul.length>0)
          {
            saveString = this.getNodeOrders(ul[0],saveString);	
          }	
        }			
        li = li.nextSibling;
      }
    }

    if(initObj.id == this.strIdTree)
    {
      return saveString;   
    }
    return saveString;
  },
  
  highlightItem : function(inputObj,e)
  {
    if(objTreeDragDrop.currentlyActiveItem)objTreeDragDrop.currentlyActiveItem.className = '';
    this.className = 'highlightedNodeItem';
    objTreeDragDrop.currentlyActiveItem = this;
  },
  
  removeHighlight : function()
  {
    if(objTreeDragDrop.currentlyActiveItem)objTreeDragDrop.currentlyActiveItem.className = '';
    objTreeDragDrop.currentlyActiveItem = false;
  },
  
  hasSubNodes : function(obj)
  {
    var subs = obj.getElementsByTagName('LI');
    if(subs.length>0)return true;
    return false;	
  },
  
  __refreshDisplay : function(obj)
  {
    if(this.hasSubNodes(obj))return;

    var img = obj.getElementsByTagName('IMG')[0];
    img.style.visibility = 'hidden';	
  },
  
  initTree : function()
  {
    objTreeDragDrop = this;
    objTreeDragDrop.createDropIndicator();
    document.documentElement.onselectstart = objTreeDragDrop.cancelSelectionEvent;
    document.documentElement.ondragstart = objTreeDragDrop.cancelEvent;
    document.documentElement.onmousedown = objTreeDragDrop.removeHighlight;
    
    //Creating help object for storage of values
    this.helpObj = document.createElement('DIV');
    this.helpObj.style.display = 'none';
    document.body.appendChild(this.helpObj);
        
    var intTreeDragDropIdNode = 0;
    var dhtmlgoodies_tree = document.getElementById(this.strIdTree);
    var menuItems = dhtmlgoodies_tree.getElementsByTagName('LI');	// Get an array of all menu items
    for(var no=0;no<menuItems.length;no++){
      // No children var set ?
      var noChildren = false;
      var tmpVar = menuItems[no].getAttribute('noChildren');
      if(!tmpVar)tmpVar = menuItems[no].noChildren;
      if(tmpVar=='true')noChildren=true;
      // No drag var set ?
      var noDrag = false;
      var tmpVar = menuItems[no].getAttribute('noDrag');
      if(!tmpVar)tmpVar = menuItems[no].noDrag;
      if(tmpVar=='true')noDrag=true;
           
      intTreeDragDropIdNode++;
      var subItems = menuItems[no].getElementsByTagName('UL');
      var img = document.createElement('IMG');
      img.src = this.imageFolder + this.plusImage;
      img.onclick = objTreeDragDrop.showHideNode;
      
      if(subItems.length==0)img.style.visibility='hidden';else{
        subItems[0].id = 'tree_ul_' + intTreeDragDropCompteurUl;
        intTreeDragDropCompteurUl++;
      }
      var aTag = menuItems[no].getElementsByTagName('A')[0];
      aTag.id = 'nodeATag' + menuItems[no].id.replace(/[^0-9]/gi,'');
      //aTag.onclick = objTreeDragDrop.showHideNode;
      if(!noDrag)aTag.onmousedown = objTreeDragDrop.initDrag;
      if(!noChildren)aTag.onmousemove = objTreeDragDrop.moveDragableNodes;
      menuItems[no].insertBefore(img,aTag);
      //menuItems[no].id = 'dhtmlgoodies_treeNode' + intTreeDragDropIdNode;
      var folderImg = document.createElement('IMG');
      if(!noDrag)folderImg.onmousedown = objTreeDragDrop.initDrag;
      folderImg.onmousemove = objTreeDragDrop.moveDragableNodes;
      if(menuItems[no].className){
        folderImg.src = this.imageFolder + menuItems[no].className;
      }else{
        folderImg.src = this.imageFolder + this.folderImage;
      }
      menuItems[no].insertBefore(folderImg,aTag);
      
      this.addEvent(aTag,'contextmenu',this.highlightItem);
    }	

    initExpandedNodes = this.Get_Cookie('dhtmlgoodies_expandedNodes');
    if(initExpandedNodes){
      var nodes = initExpandedNodes.split(',');
      for(var no=0;no<nodes.length;no++){
        if(nodes[no])this.showHideNode(false,nodes[no]);	
      }			
    }			

    document.documentElement.onmousemove = objTreeDragDrop.moveDragableNodes;	
    document.documentElement.onmouseup = objTreeDragDrop.dropDragableNodes;
  },
  
  sendAjax : function(strConteneurReponse, strUrl, objParams)
	{
    new Ajax.Updater(strConteneurReponse, strUrl, objParams);
    return false;
  },
  
  setUrlUpdateStructure : function(strValeur)
	{
    this.strUrlUpdateStructure = strValeur;
  },
  
  setIdConteneurUpdateStructureReponse : function(strValeur)
	{
    this.strIdConteneurUpdateStructureReponse = strValeur;
  },
  
  setParamsUpdateStructure : function(objValeur)
	{
    this.objParamsUpdateStructure = objValeur;
  },
  
  setAjaxUpdateStructure : function(boolValeur)
	{
    this.boolAjaxUpdateStructure = boolValeur;
  },
  
  setVariableUpdateStructure : function(strValeur)
	{
    this.strVariableUpdateStructure = strValeur;
  }
}

Modifié par Francois44 (01 Jun 2008 - 19:37)

^
koala64
#
Modérateur
4162 Posts
Salut,

a écrit :
J'ai testé la même page sans le javascript en question et ça fonctionne. Je ne vois pas d'où cela peut venir ... et je suis ouvert à toutes suggestions et/ou pistes.
Ben plutôt que de tout couper, tu coupes des parties de ton code puis tu regardes à partir de quel moment ça bloque... Smiley cligne

^
Francois44
#
94 Posts
C'est ce que j'ai fait ... mais j'arrive toujours pas à discerner mon erreur.


je reposterais ici pour vous tenir au courant.

Merci Koala64 Smiley cligne

^
Mist. GraphX
#
1 Posts
Je profite de ce "thread" même si il date un peut car j'ai le même problème actuellement, sur deux scripts tous simples que j'utilise sur des sites, apparemment quand je passe dans les options de Internet Explorer et que j'autorise tous les cookies, en cochant la case pour désactiver la gestion automatique des cookies, et bien ça fonctionne ...

N'y a t'il pas une solution pour que internet explorer accepte ce cookie comme fiable sans que l'utilisateur doive aller fouiller dans les options du navigateur (car ce n'est pas le point fort des utilisateurs de ce navigateur !!!! ) ???

ou au moins qu'il recoive un message d'alerte lui demandant d'accepter le cookie ???

merci d'avance de vos suggestions

^
koala64
#
Modérateur
4162 Posts
Bonjour et bienvenue Mist. GraphX, Smiley smile

Le problème que tu rencontres n'a vraiment rien à voir avec celui exposé dans ce fil. Smiley rolleyes
Aussi, il serait préférable que tu crées ton propre sujet plutôt que de faire dériver celui-ci... quand bien même ce sujet commence à dater.

Merci pour ta compréhension. Smiley cligne

Pour revenir à la question d'origine, l'alerte "Opération abandonnée" d'IE intervient souvent lorsqu'on charge trop de fonctions sur le "domready". Par conséquent, mieux vaut privilégier le "load" et ne se servir du "domready" que lorsque c'est réellement nécessaire.
Pour corriger ce problème, on peut aussi différer légèrement le lancement de la fonction incriminée à l'aide d'un setTimeout.

^
Francois44
#
94 Posts
Bonjour,

j'ai un peu honte d'avouer que j'avais oublié ce "thread" Smiley confused ...

Pour le fermer un bonne fois pour toutes, voici l'explication de ce bug :

Sur IE (6 et 7), si une fonction javascript modifie le DOM alors que la page n'est pas encore complètement chargé, une alerte du type
a écrit :
Internet Explorer ne peut pas ouvrir le site xxxxxxx
Opération abandonnée

survient ... la solution est de mettre ce même script dans l'évènement window.onload

si ça peut servir ... Smiley cligne
Modifié par Francois44 (01 Jun 2008 - 19:39)

^
orangetanguine
#
1 Posts
Merci Francois44!
tu vois, 8 mois après, cela m'a bien servi (bug sur le même script)

^