Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# xul et XPCOM

Envoyé par : Utilisateur anonyme

Date : 16/12/2004 11:47

je suis en train de lire le tutoriel, et suis à la partie XPCOM (bravo les traducteurs et merci pour ce travail) bref je cherche à tester l'exemple de suppression/déplacement d'un fichier txt. J’ai donc créé un fichier xul avec un simple bouton et un autre avec le javascript faisant appel au composant XPCOM comme décrit dans l’exemple, bien sur j’ai lié le fichier js avec le xul et posé ceux-ci dans un répertoire à la racine de chrome de firefox.

chrome
    --> montest (dir)
          ----> montest.xul
          ----> montest.js
          ----> montest.rdf

Le bouton fonctionne bien mais c’est l’appel au composant qui me renvoi Une erreur. Erreur : uncaught exception: Permission refusée d'obtenir la propriété UnnamedClass.classes

1ere question est : est ce la bonne méthode pour testé une Appli xul et y a t-il des erreurs dans les chemins?

2eme question : ci-dessous le code du xul et js y a t-il des erreurs dans le code?

3eme question: y a t-il quelque chose que je n'ais pas pigé et que je ne voi pas?

//////////////// montest.xul

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window
    id="copier-window"
    title="Recherche de fichiers"
    orient="horizontal"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script src="montest.js" />


  <button id="copier-button"   label="Copier fichier" default="true"
  onclick="copyFile('C:/testfile.txt','C:/PerfLogs');" />
</window>

////////////////// montest.js

function copyFile(sourcefile,destdir) {
     
     //alert(sourcefile); pour verifier l'appel a la fonction
     
     // récupérer un composant pour le fichier à copier
     var aFile = Components.classes["@mozilla.org/file/local;1"]
         .createInstance(Components.interfaces.nsILocalFile);
     if (!aFile) return false;
      // récupérer un composant pour le répertoire où la copie va  
      // s'effectuer.
     var aDir = Components.classes["@mozilla.org/file/local;1"]
       .createInstance(Components.interfaces.nsILocalFile);
     if (!aDir) return false;
      // ensuite, on initialise les chemins
     aFile.initWithPath(sourcefile);
     aDir.initWithPath(destdir);
     // Au final, on copie le fichier sans le renommer
     aFile.copyTo(aDir,null);
  }

/////////////// montest.rdf

<?xml version="1.0"?>

<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:chrome="http://www.mozilla.org/rdf/chrome#">

  <RDF:Seq RDF:about="urn:mozilla:package:root">
    <RDF:li RDF:resource="urn:mozilla:package:montest"/>
  </RDF:Seq>

  <RDF:Description RDF:about="urn:mozilla:package:montest"
          chrome:displayName="Application XPCOM"
          chrome:author="macgile"
          chrome:name="montest"
          chrome:extension="true"/>

</RDF:RDF>

merci de votre aide

macgile

# Re: xul et XPCOM

Envoyé par : Utilisateur anonyme

Date : 18/12/2004 16:27

Es-tu certain d'etre dans un chrome ? Tu load ton appli via chrome:// ou file:// ?

Si tu es dans un file utilises les netscape.security: netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

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.