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.
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)
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.
Envoyé par : thefab
Date : 21/06/2009 16:23
"~/" est un chemin valide pour Vista ??
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.