Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# FF4 : problème drag and drop

Envoyé par : anais

Date : 17/05/2011 14:08

Bonjour,

Est-ce quelqu'un a aussi des soucis avec la mise à jour de FF4 et les fonctions drag and drop de l'interface draganddrop?

Dans les versions précédentes de FF c'était le conteneur javascript qui appellait toutes les interfaces XPCom. Comment faut-il procéder maintenant? Comment faire pour enregistrer à l'aide d'un fichier manifest ?

Dans mon extension, lors de la phase "drop" je reçoit un message d'erreur :

L'URL n'est pas valide et ne peut être chargée.

Merci à tous ceux qui veulent me donner un coup de main.

# Re: FF4 : problème drag and drop

Envoyé par : thx1138

Date : 17/05/2011 20:49

Hello,

tu pourrais être plus précis.

Avec FF4 (XulRunner 2), tu dois mettre ton fichier manifest dans le dossier racine de ton extension et plus dans le dossier chrome.

# Re: FF4 : problème drag and drop

Envoyé par : anais

Date : 17/05/2011 22:24

Effectivement le manifest est bien à la racine de l'extension.

Pour le drag and drop je déclare les scripts dans mon fichier xul:

<script  type="application/x-javascript" src="chrome://global/content  /nsDragAndDrop.js"></script>
<script  type="application/x-javascript" src="chrome://global/content /nsTransferable.js"></script>

Tout fonctionnait parfaitement avant la mise à jour FF4. Comme dans la version FF4 les notes parlent d'un grand changement par rapport à XPCOM, je suppose que c'est dans cette direction que je dois chercher. Si j'ai bien compris il faut déclarer dans le fichier chrome.manifest l'utilisation d'un autre manifest ou composants XPCOM. Mais comment fait-on?

Merci.

# Re: FF4 : problème drag and drop

Envoyé par : thx1138

Date : 18/05/2011 00:04

Je n'ai jamais testé le drag&drop mais pour les fichiers manifest tu as l'explication ici

https://developer.mozilla.org/en/Chrome(..)

# Re: FF4 : problème drag and drop

Envoyé par : jérôme

Date : 18/05/2011 09:08

Salut, je viens de vérifier dans le toolkit.jar, le fichier nsTransferable.js n'existe plus. Est-ce que ça vient de là ?

# Re: FF4 : problème drag and drop

Envoyé par : Raphael

Date : 19/05/2011 06:23

Je suis ce problème de près car j'ai une appli XR 1.9 qui utilise le drag/drop de la même manière, et je suis en train de la réécrire en la passant vers XR 2.0...

Quelque chose d'aussi important n'a pas été marqué sur MDC à la page des modifs importantes de Firefox 4 pour développeurs ?

# Re: FF4 : problème drag and drop

Envoyé par : anais

Date : 19/05/2011 08:52

Effectivement, l'API a changé pour le drag and drop.

https://developer.mozilla.org/En/DragDro(..)

Apparemment il ne faut plus déclarer les scripts dans un fichier xul.

# Re: FF4 : problème drag and drop

Envoyé par : Raphael

Date : 20/05/2011 06:12

Si tu parviens à adapter ton code à la nouvelle API, n'hésite pas à faire un retour ;)

# Re: FF4 : problème drag and drop

Envoyé par : anais

Date : 23/05/2011 14:21

Bonjour,

Voilà, j'ai adapté mon code et tout va bien. Donc, il vaut mieux lire la nouvelle API, c'est bien expliqué.

En premier lieu j'ai enlevé les déclarations de scripts dans mon fichier XUL: <script type="application/x-javascript" src="chrome://global/content /nsDragAndDrop.js"></script> <script type="application/x-javascript" src="chrome://global/content /nsTransferable.js"></script>

Ensuite, dans l'API est noté que par défaut tous les éléments XUL sont "draggable". Il existe un attribut draggable qui peut prendre "true" ou "false" mais il ne faut pas le mettre soi-même.

Il faut déclarer les évènements suivants dans l'élément XUL:

<button label = "Drag me"
 ondragstart="event.dataTransfer.setData('text/plain', 'Drag Me Button');"
 ondragenter="event.preventDefault();"
 ondragover="event.preventDefault();"
 ondrop="doDrop(event);"
 "/>
 function doDrop(event) {
   var data = event.dataTransfer.getData("text/plain");
   event.target.textContent = data;
   event.preventDefault();
 }

Il y a beaucoup de possibilités décrites dans l'API et même des exemples. Le code a été simplifié comparé à l'ancienne API. Avec ces changements mon application est devenue compatible FF4.

# Re: FF4 : problème drag and drop

Envoyé par : Raphael

Date : 24/05/2011 09:21

Merci beaucoup pour ce retour !

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.