Envoyé par : Utilisateur anonyme
Date : 21/09/2005 14:49
bonjour, je suis en train de faire une application en xul et je voudrais introduire un file picker ... je lis le xul tutorial ...je mets une fonction :
function something () { var nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); fp.init(window, "Sélectionner un fichier", nsIFilePicker.modeOpen); }
et je vois rien apparaître ! il faut initialiser quelque chose pour que ça marche ?
merci
stephane
Envoyé par : laurentj
Date : 21/09/2005 15:25
tu as en effet oublier la suite...
var reponse = fp.show(); if (reponse == nsIFilePicker.returnOK){ alert('on peut maintenant ouvrir le fichier '+ fp.file.path); }
Envoyé par : Utilisateur anonyme
Date : 21/09/2005 15:29
ben en fait j'ai mis le code que tu proposes aussi mais rien de rien ... j'execute le fichier xul depuis firefox : je sais pas ce qu'il se passe ?
Envoyé par : Utilisateur anonyme
Date : 21/09/2005 15:37
ma page est la suivante :
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="example-window" title="Example 8.2.1" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> function selectFile(){ alert ( 'pour voir si le code ...'); var nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); fp.init(window, "Sélectionner un fichier", nsIFilePicker.modeOpen); var reponse = fp.show(); if (reponse == nsIFilePicker.returnOK){ alert('on peut maintenant ouvrir le fichier '+ fp.file.path); } } </script> <button label="essai" oncommand="selectFile()" /> </window>
Envoyé par : Julien Appert
Date : 22/09/2005 02:28
C'est un pb de sécurité. Au début de ta fonction, ajoute cette ligne :
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
ça devrait beaucoup mieux fonctionner.
NB : tu dois avoir un message d'erreur dans la console javascript.
Envoyé par : laurentj
Date : 22/09/2005 11:00
ah oui, j'ai pas pensé, si effectivement tu execute ce script depuis une page XUL distante (qui n'est donc pas déclarée dans le chrome) ça ne fonctionnera pas comme ça.
Envoyé par : MiKe
Date : 22/09/2005 16:55
laurentj a écrit:
ah oui, j'ai pas pensé, si effectivement tu execute ce script depuis une page XUL distante (qui n'est donc pas déclarée dans le chrome) ça ne fonctionnera pas comme ça.
D'ailleurs j'ai une question Laurent à ce propos et je pense que beaucoup de monde se demande cela:
Comment peut-on savoir les Interfaces qui sont accessibles via un script distant et celles qui le sont pas??
Par exemple Components.interfaces.nsILocalFile est disponible alors que comme tu viens de le souligner Components.interfaces.nsIFilePicker ne l'est pas.
Je me pose la question pour l'interface nsIWebBrowserPrint alors utilisable ou non à distance? Y-a t'il une règle générale?
Merci d'avance
Envoyé par : laurentj
Date : 26/09/2005 16:02
Components.interfaces est un objet comme un autre. Donc si tu veux savoir si tel interface existe, tu regardes si Components.interfaces possède une propriété du même nom...
Envoyé par : laurentj
Date : 26/09/2005 16:57
if(undefined == Components.interfaces["moninterface"]){ ou if(undefined == Components.interfaces.moninterface){ // l'interface n'existe pas }else{ // l'interface existe }
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.