Je dois faire des boutons dans une page HTML et lancer via ces boutons des script sh. Sur des machines linux
La technologie xpcom permet-elle donc bien de faire cela?
Avez-vous des expériences ou exemples à me citer pour que je puisse démarrer.
Je dois faire des boutons dans une page HTML et lancer via ces boutons des script sh. Sur des machines linux
La technologie xpcom permet-elle donc bien de faire cela?
Avez-vous des expériences ou exemples à me citer pour que je puisse démarrer.
essaies ceci...
Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function process(execpath,args) { //Creation d'un objet nsILocalFile pour l'application var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(execpath); //Creation du processus var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); //Execution du processus //Si le premier parametre est true, le script sera bloqué jusqu'a la fin du processus //Les seconds et troisiemes parametres sont les arguments transmis a l'application //(Le troisieme etant le nombre d'arguments). process.run(false, args, args.length); }
Là je suis sur d'autres choses mais je sais maintenant quelle technologie je vais utiliser.
Dès que j'ai testé ça je raconte mon expérience de la chose.
Donc, revenons à nos moutons.
Après avoir fureté à droite à gauche. j'en suis arrivé à ça.
tout d'abord pour éviter quelques soucis :
Pour activer les privilèges XPCOM (attention! à l'arrache donc seulement pour tester)
Ajouter au fichier ~/.mozilla/firefox/ziguigui.default/pref.js la ligne suivante
user_pref("signed.applets.codebase_principal_support", true);
un petit echo 'user_pref("signed.applets.codebase_principal_support", true);' >> ~/.mozilla/firefox/ziguigui.default/pref.js fera amplement l'affaire.
pour le code javascript :
et pour le code XHTML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function executerFichierScript(chemin_fichier, arguments) { try { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var fichier = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile) fichier.initWithPath(chemin_fichier) if (fichier.exists()) { var processus = Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess) processus.init(fichier) processus.run(false, arguments, arguments.length) } } catch(e) { alert('Une erreur:' + e); } }
Et voilà, normalement cela fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="" onclick="executerFicherScript('/chemin/du/script/a/lancer', ['argument 1', 'argument 2', 'argument n'])">lancer script</a>
testé sous Linux (debian et ubuntu) avec firefox 2.etdesbriquettes
Partager