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.