Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [1er Pas]Inclure fichier .js dans un xul

Envoyé par : Greg

Date : 27/08/2006 14:14

Bonjour, Je débute (je connais pas trop le xul, je connais pas le javascript ... ça va pas être facile)

j'essaye de me faire un petit exemple 'pour voir comment ça marche'

  • c'est une execution locale
firefox file:///home/Moi/MesDevs/xul/menu001.xul
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" ?>
<?xml-stylesheet href="menu001.css" type="text/css"?>
<?xul-overlay href="overlay/status_statusbar.xul"?>
<!DOCTYPE window [
  <!ENTITY windowTitle.label "M A B">
  
  <!ENTITY catalog.label "Catalog">
  <!ENTITY next.label "Next">
  
  <!ENTITY next.tooltip "Get Next Records">
  <!ENTITY clear.label "Clear">
  
  <!ENTITY imageLarge.tooltip "Click to see the larger image">
  <!ENTITY review.label "Reviews">
  <!ENTITY info.label "Product Info">
  ]
>
	  
<window title="my project"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       xmlns:svg="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink"
       xmlns:html="http://www.w3.org/1999/xhtml"
       orient="vertical"
       width="400"
       height="200"
>
<!-- mes commentaires -->
<script type="application/x-javascript" src="Functions.js" />
<menubar id="mainmenubar">
 <menu id="help-menu" label="test">
   <menupopup>
<menuitem label="Fermer" accesskey="c" oncommand="window.close();"/>
<menuitem label="Fermer 2" accesskey="a" oncommand="QuitAppli();"/>
   
   </menupopup>
 </menu>

</menubar>
[...]
</box>
</window>
  • j'ai un ptit javascript dans le même répertoire :
<script type="application/x-javascript">
alert("Mes Fonctions !");

function QuitAppli() {
alert("sortir");
window.close();
Components.classes['@mozilla.org/toolkit/app-startup;1']
          .getService(Components.interfaces.nsIAppStartup)
          .quit(Components.interfaces.nsIAppStartup.eAttemptQuit);
}


ici une erreur
</script>
  • le css
box[status=intact] { background-image:url(../../Images/3d16.jpg) }
box[status=touche] {  background-image:url(../../Images/AvionCiel001.jpeg) }

mon problème est : j'ai l'impression que :

  1. le javascript n'est pas chargé
  2. qu'il est chargé, mais ignoré dans mes balise

=> j'essaye juste de faire une fermeture de la fenêtre dans un code .js séparé

Quelle est mon erreur (erreur évidente j'imagine ....) Merci d'avance.

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : Greg

Date : 27/08/2006 17:55

Par ailleurs j'ai intégré le .js entre balise <script></script> en remplacement de <script type="application/x-javascript" src="Functions.js" />, là cela fonctionne !

:-(

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : Greg

Date : 27/08/2006 18:02

hum hum, j'ai trouvé

dans le .js faut mettre aucune balise, directe le code javascript ! (vraiement une connerie de débutant ...)

n'empêche que le code suivant ne ferme pas l'appli

function QuitAppli() {
// ceci fonctionne alert("sortir");

Components.classes['@mozilla.org/toolkit/app-startup;1']
          .getService(Components.interfaces.nsIAppStartup)
          .quit(Components.interfaces.nsIAppStartup.eAttemptQuit);
}

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : thefab

Date : 27/08/2006 20:19

n'empêche que le code suivant ne ferme pas l'appli

C'est normal, tu n'as pas le droit d'accéder à XPCOM (Components...) dans un fichier .xul local tu dois l'enregistrer dans le chrome.

Commence par lire ces 2 pages: http://xulfr.org/wiki/ConfigurerMozillaP(..) et http://xulfr.org/wiki/Extensions/Enregis(..)

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : Greg

Date : 29/08/2006 06:59

thefab a écrit:

> n'empêche que le code suivant ne ferme pas
l'appli

C'est normal, tu n'as pas le droit d'accéder à
XPCOM (Components...) dans un fichier .xul local
tu dois l'enregistrer dans le chrome.

Commence par lire ces 2 pages:
[http://xulfr.org/wiki/ConfigurerMozillaPourDevelo
pper] et
[http://xulfr.org/wiki/Extensions/EnregistrementCh
rome]

Merci, je vais regarder j'aime bien le 2.4 du 1er lien :

"Elles sont indispensables si on ne veut pas tourner en rond pendant des heures à rechercher la cause d'un disfonctionnement"

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : Greg

Date : 31/08/2006 07:33

thefab a écrit:

Commence par lire ces 2 pages:
[http://xulfr.org/wiki/ConfigurerMozillaPourDevelo
pper] et
[http://xulfr.org/wiki/Extensions/EnregistrementCh
rome]

J'ai lu et il me reste un soucis, dans mon ~/chrome/content/ j'ai un demo.xul (un kiosk, je pensais que c'était le plus simple pour commencer)

mais un

firefox -P Kiosk -console -jsconsole -chrome chrome://LicKiosk/content/demo.xul

me renvoi (dans la console javascript un truc du genre "no chrome packge registred")

$ cat home/moi/mozilla/firefox/profil Kiosk/extensions/uidAppliSansLesAccolades

/home/moi/chrome/

dans /home/moi/chrome/

cat chrome.manifest
content LicKiosk        /home/kiosk/chrome/content/
locale  LicKiosk        /home/kiosk/chrome/locale/fr-FR/
skin   LicKiosk        /home/kiosk/chrome/skin/
override  chrome://browser/content/browser.xul  chrome://LicKiosk/content/demo.xul

mai je vois pas comment lui dire de lancer demo.xul dans tous ça ?

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : thefab

Date : 01/09/2006 16:20

Dans le fichier uidAvecAccolades (en tout cas sous Windows) tu dis qu'il se trouve dans le dossier 'moi' et dans chrome.manifest tu dis qu'il se trouve dans 'kiosk' !

Utilise des chemins relatifs dans chrome.manifest:

uidAvecAccolades

/home/moi/

Le fichier chrome.manifest doit se trouver ici: /home/moi/chrome.manifest et demo.xul ici: /home/moi/chrome/content/demo.xul

chrome.manifest

content LicKiosk chrome/content/
...

En espérant ne pas avoir fait de fautes.

# Re: [1er Pas]Inclure fichier .js dans un xul

Envoyé par : Greg

Date : 02/09/2006 13:54

thefab a écrit:

Dans le fichier uidAvecAccolades (en tout cas
sous Windows) tu dis qu'il se trouve dans le
dossier 'moi' et dans chrome.manifest tu dis qu'il
se trouve dans 'kiosk' !

oui, je fait les tests avec mon user ('moi'), au final je lance la demo avec l'utilisateur 'kiosk' (j'avais peur de casser des choses sur mon login donc en fait tout se trouve dans /home/kiosk/chrome

uidAvecAccolades

j'ai fait un liens avec une version accolade, mais pas de changement

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.