mrt_sniper
Messages postés10Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention22 février 2007
-
14 févr. 2007 à 10:35
slayer418
Messages postés19Date d'inscriptionsamedi 22 avril 2006StatutMembreDernière intervention 1 juillet 2009
-
29 mai 2008 à 21:16
Bonjour,
je suis entrain de faire une extension pour Firefox et j'ai besoin d'un bouton "save as"
le problem est que document.execCommand ne marche pas sur Firefox , est ce qu'il y a un equivalent a cette methode qui marche sur firefox ??
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 14 févr. 2007 à 11:45
Bonjour,
execCommand fonctionne parfaitement avec FF, sauf quelques
commandes ( comme "Save AS" par exemple )
en javascript "pur" , pas d'équivalent, je crains.
regarder du coté XUL,XPCOM l'équivalent des ActiveX pour FF...
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 12:04
En gros tu veut sauvegarder un texte qui est dans une variable pour le mettre dans un fichier ? Si c'est ça, il faut utiliser les interfaces XPCOM exportées par Firefox
Exemple :
// On récupère une instance d'une classe qui supporte l'interface nsILocalFile
// L'objet servira à décrire le fichier devant être ouvert
var file = Components.classes["@mozilla.org/file/local;1"].
createInstance(Components.interfaces.nsILocalFile);
// On ouvre le fichier spécifié
file.initWithPath("C:\\test.txt");
// On crée un flux de sortie
var output_stream = Components.classes["@mozilla.org/network/file-output-stream;1"].
createInstance(Components.interfaces.nsIFileOutputStream);
// On initialise le flux de sortie avec notre fichier précedemment ouvert, avec les droits
// d'écriture (0x02) et en demandant de créer un nouveau fichier (0x08)
output_stream.init(file, 0x02 | 0x08, 0, 0);
// On écrit notre texte
output_stream.write("Salut !", "Salut !".length);
// On flushe, et on ferme
output_stream.flush();
output_stream.close();
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 12:05
PS: Pour les modes d'écriture dans le fichier, regarder le fichier prio.h des sources de Firefox.
Toutes les infos ont étées trouvées sur XULPlanet
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 12:39
Euh... Avant d'aller voir la doc sur XULPlanet, je connaissais rien à l'utilisation des fichiers avec XPCOM :) Donc je pense qu'aller lire des infos, c'est à la portée de tout le monde
Et le moteur de recherche qui permet de rechercher un mot/un fichier dans le code source de firefox : http://lxr.mozilla.org/seamonkey/
Bonne lecture
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 14 févr. 2007 à 12:46
>>...c'est à la portée de tout le monde...
déjà dans un patois local que tout le monde n'entrave pas.
un extrait simplifié aiderait énormément les débutants comme moi.
si tu ne le sens pas, d'autres s'en chargeront probablement. merci déjà pour le lien.
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 13:13
Bon je vais essayer de faire un petit tuto qui explique comment utiliser les XPCOM, mais j'hésite à faire un tuto complet ou juste faire une doc...
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 14 févr. 2007 à 14:20
commences au moins par une petite doc.
tu pourras toujours améliorer par la suite pour en faire
un "vrai tuto".
et on a besoin d'infos, car sur ce que tu donnes ( et sur l'exemple
donné sur XULPlanet d'ailleurs ), pour moi, par exemple, ça plante.
Erreur : uncaught exception: Permission refusée d'obtenir la propriété UnnamedClass.classes
donc , c'est assez mal expliqué, on ne dit pas tout ?
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 14:26
C'est normal, tu ne l'as pas utilisé dans une extension firefox je suppose ? Car si tu l'a utilisé normalement (un fichier .js), c'est sur que firefox t'autorisera pas à toucher aux fichiers... C'est pas IE quand même
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 14 févr. 2007 à 14:36
ben voila... ce qui manque, entr'autres, pour les débutants ( et donc pour moi
qui ne joue pas les candides )
j'aimerais gérer ( enfin ! une révolution pour les non IE !!! ) des fichiers en local
avec FF ( euh... K-Meleon en fait mais peu importe )
c'est quoi une extension firefox ?
bref, j'ai ton code, comment le faire fonctionner ?
<hr />
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 17:57
Une extension firefox, c'est (comme son nom l'indique) un ensemble de fichiers qui va ajouter des fonctionnalités à Firefox.
J'ai deja fait un tuto dessus, regarde dans les tutoriaux.
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
slayer418
Messages postés19Date d'inscriptionsamedi 22 avril 2006StatutMembreDernière intervention 1 juillet 2009 29 mai 2008 à 21:16
Sinon j'ai trouver un moyen de faire marcher ton code(nightlord666) directement en JS ,
tu ajoute "netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');"
dans ta balise script suivi du code, le seul inconvénien (si cela dérange réellement quelqu'un) est que cela fait apparaitre une boite d'autorisation pour enablePrivilege, mais tu a le choix de pouvoir la faire apparaitre seulement une fois.
En tout cas c'est une méthode sans utilisé de module complémentaire.