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.
Le plus compliqué, c'est de faire quelque chose de simple.
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.
Le plus compliqué, c'est de faire quelque chose de simple.
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
Le plus compliqué, c'est de faire quelque chose de simple.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager