[xul/xpcom/js] problèm avec drag and drop

problèm avec drag and drop [xul/xpcom/js] - Divers - Programmation

Marsh Posté le 01-04-2006 à 16:30:35    


Bonjour,
 
 
Je suis en train d'implémenter le drag and drop pour une liste dans mon extension.
Mais le problème c'est que je ne peux pas démarrer de session depuis ma liste, et que si j'en démarre une depuis une autre application et que je drop sur ma liste j'ai firefox qui plante (voulez vous arreter le script blablabla)
 
 
J'ai aucune erreur dans la console.
 
 
Voilà le code que j'utilise:
 
 

  • Ajout des evenements :


Code :
  1. Event.observe(listitem, 'draggesture', function(event) { return nsDragAndDrop.startDrag(event, dragdrop); });
  2. Event.observe(listitem, 'dragover', function(event) { return nsDragAndDrop.dragOver(event, dragdrop); });
  3. Event.observe(listitem, 'dragdrop', function(event) { return nsDragAndDrop.drop(event, dragdrop); });
  4. Event.observe(listitem, 'dragexit', function(event) { return nsDragAndDrop.dragExit(event, dragdrop); });


 

  • Objet observateur :


Code :
  1. var dragdrop = {
  2.  
  3. onDragStart: function(event, transferData, action){
  4.  
  5.   var name = event.target.childNodes[0].getAtribute('label');
  6.   var csv = event.target.childNodes[1].getAttribute('label');
  7.  
  8.   transferData.data = new TransferData();
  9.   transferData.data.addDataForFlavour("text/unicode", name + '||' + csv);
  10. },
  11.  
  12. getSupportedFlavours : function() {
  13.  
  14.   var flavours = new FlavourSet();
  15.   flavours.appendFlavour("text/unicode" );
  16.   return flavours;
  17.  
  18. },
  19.  
  20. onDragOver: function(event, flavour, session) {
  21.  
  22.   event.target.setAttribute('style', 'border-top:2px solid #000000;');
  23.  
  24. },
  25.  
  26. onDragExit: function(event, session) {
  27.  
  28.   event.target.setAttribute('style', null);  
  29.  
  30. },
  31.  
  32. onDrop: function(event, dropdata, session) {
  33.  
  34.   $('hfrenhance2-smilies-name').value = dropdata.data;
  35.  
  36. }
  37.  
  38. }


 

Reply

Marsh Posté le 01-04-2006 à 16:30:35   

Reply

Sujets relatifs:

Leave a Replay

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