Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# application xulrunner

Envoyé par : jérôme

Date : 20/06/2009 10:47

Bonjour à tous, je suis en train de tenter de réaliser une appli xulrunner et je n'arrive pas à utiliser les composants xpcom. J'aurai besoin de votre aide pour y voir plus clair. Ainsi, j'ai un répertoire s'appelant hello et à l'intérieur un dossier chrome contenant un dossier "content" contenant lui-même hello.xul. Au même niveau que le dossier chrome, j'ai un dossier defaults->preferences->prefs.js et dans prefs.js il y a juste écrit "pref("toolkit.defaultChromeURI", "chrome://hello/content/hello.xul");"

Au même niveau que le dossier chrome, j'ai le dossier xulrunner, le fichier application.ini, le fichier hello.exe (fichier xulrunner-stub.exe renommé) et le fichier chrome.manifest dans lequel il y a écrit "content hello file:content/hello.xul"

J'arrive à ouvrir une fenêtre contenant hello.xul.

Jusque là c'est bon, mais lorsque dans le code de hello.xul, je rajoute par exemple ce code trouvé sur votre site :

<script>
<![CDATA[
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
function openExternal(aFile)
{

  var uri = Components.classes["@mozilla.org/network/io-service;1"]
                      .getService(Components.interfaces.nsIIOService)
                      .newFileURI(aFile);
  var protocolSvc =
      Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]
                .getService(Components.interfaces.nsIExternalProtocolService);
  protocolSvc.loadUrl(uri);
  return;
}

function filemanager() {
var fp = Components.classes["@mozilla.org/file/local;1"].
          createInstance(Components.interfaces.nsILocalFile);
 fp.initWithPath(document.getElementById('dir').value);
 try {
   fp.reveal();
 } catch(e) { openExternal(fp); };
}
]]>
</script>
<hbox>
 <label value="Répertoire système à ouvrir :" />
 <textbox id="dir" value="~/" />
 <button label="..." oncommand="filemanager()" />
</hbox>

eh bien rien ne se passe, ça ne marche pas. J'obtiens :

uncaught exception: [Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: chrome://foobar/content/foobar.xul :: filemanager :: line 25"  data: no] Line 0

J'ai le dernier xulrunner 1.9 Si quelqu'un pouvait m'aider ce serait très gentil.

# Re: application xulrunner

Envoyé par : thefab

Date : 20/06/2009 17:49

Je suppose que "~/" n'est pas un chemin valide pour XULRunner, essaye avec un autre chemin, absolu par exemple, si là ça fonctionne c'est que "~/" n'est pas accepté, dans ce cas il te faudra pré-remplir le chemin à la main (il existe un XPCOM qui te retourne le dossier de l'utilisateur)

# [résolu]Re: application xulrunner

Envoyé par : jérôme

Date : 21/06/2009 09:13

Bonjour thefab, merci d'avoir répondu à mon message. Le problème s'est réglé en redémarrant vista... Marre du windows... Merci encore.

# Re: application xulrunner

Envoyé par : thefab

Date : 21/06/2009 16:23

"~/" est un chemin valide pour Vista ??

# Re: application xulrunner

Envoyé par : f_merghit

Date : 26/02/2013 22:07

bonjour je veut connaitre comment utiliser xpconnect est ce que on ajoute seulement <![CDATA[ ... à,le script ou bien?

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.