Bonsoir à tous,

arpès avoir réglé un leger problème de code, ma fonction fonctionne mais n'est pas très utile à l'heure actuel.
Mon script est un script GreaseMonkey.

En effet, j'ai besoin de stocker le tableau que j'ai récupéré à l'aide de ma fonction pour que je puisse traité les informations sur la page suivante.
De préférence j'aimerai que toute mes données soit au final dans un fichier ? mail ? ou autre qui puisse rassemblé toutes les données.

J'ai en effet 50*6 données sur une page, et j'en ai beaucoup à traiter donc ca m'embêterai que tout soit séparé.
Une idée ?

Amicalement


EDIT : j'ai un code pour enregistrer un fichier mais j'ai des soucis de droits, il rentre le catch(e) :s

PS: il faut savoir que je suis le seul a pouvoir executer le script JS donc je me "fou" de signer le script, juste donner les droits à moi même puisque c'est moi même qui est codé le truc, je sais que ca fera rien de méchant ^^

Voici le code :
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
var MSIE4 = ((navigator.appName=="Microsoft Internet Explorer") && ( navigator.appVersion.substring(0,1)=="4"));

if (MSIE4) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
compatible = "Internet Explorer 4";
}

/** renvoi true si le navigator est Microsoft Internet Explorer @return {boolean} */
function isMSIE4() {
return MSIE4;
}

var mozex_default_tmpdir = "/tmp"; /* unix */
var mozex_dir_separator = '/'; /* unix */
var mozex_os = 'unix'; /* unix */
if (window.navigator.platform.toLowerCase().indexOf("win") != -1) {
mozex_default_tmpdir = "C:\\windows\\temp"; /* windows */
mozex_dir_separator = '\\'; /* windows */
mozex_os = 'win'; /* windows */
}
/** Sauvergarde d'un texte dans un fichier
@param {string} content Contenus à sauver
@param {string} filename Chemin du fichier destination (ex: C:\texte.txt), écraser s'il existe
*/
function saveToFile(content,filename) {
if (isMSIE4()) {
saveToFileMSIE(content,filename);
} else {
saveToFileMozilla(content,filename);
}
}
/** Sauvergarde, sous IE, d'un texte dans un fichier
@param {string} content Contenus à sauver
@param {string} filename Chemin du fichier destination (ex: C:\texte.txt), écraser s'il existe
*/
function saveToFileMSIE(content,filename) {
try {
var ts = fso.CreateTextFile(filename);
ts.Write(content);
ts.Close();
} catch(e) {
document.write("Exception in saveToFileMSIE");
}
}
/** Sauvergarde, sous Mozilla, d'un texte dans un fichier
@param {string} content Contenus à sauver
@param {string} filename Chemin du fichier destination (ex: C:\texte.txt), écraser s'il existe
*/
function saveToFileMozilla(content,filename) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("Permission to save file was denied.");
}
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
filename = filename.replace(/\//gi,mozex_dir_separator);
file.initWithPath( filename );
if ( file.exists() == false ) {
file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
}
var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
.createInstance( Components.interfaces.nsIFileOutputStream );
/* Open flags
define PR_RDONLY 0x01
define PR_WRONLY 0x02
define PR_RDWR 0x04
define PR_CREATE_FILE 0x08
define PR_APPEND 0x10
define PR_TRUNCATE 0x20
define PR_SYNC 0x40
define PR_EXCL 0x80
*/
/*
** File modes ....
**
** CAVEAT: 'mode' is currently only applicable on UNIX platforms.
** The 'mode' argument may be ignored by PR_Open on other platforms.
**
** 00400 Read by owner.
** 00200 Write by owner.
** 00100 Execute (search if a directory) by owner.
** 00040 Read by group.
** 00020 Write by group.
** 00010 Execute by group.
** 00004 Read by others.
** 00002 Write by others
** 00001 Execute by others.
**
*/
outputStream.init( file, 0x04 | 0x08 | 0x20, 420, 0 );
var result = outputStream.write( content, content.length );
outputStream.close();
}

EDIT 2 :
> I'm trying to find a way to harvest information from a website and
> store it to a file on my local hard drive. I have a Javascript
> program that grabs specific information from a webpage and shows me an
> alert box with the correct content, but I can't get it saved locally.
> Is there any way to do this even if it involved enabling a debugging
> feature or temporarily enabling insecure mode?

Implement your code as an extension and load it from chrome:. Extension code
has full privileges.
Voici ce que je viens de trouver si ca peu aider, j'ai pas très bien compris comment faire avec "chrome"