2013-04-08 18 views
5

Ich habe versucht, dies ohne Glück zu tun, so habe ich beschlossen, SO zu fragen.Erstellen Sie Log-Text-Datei mit Javascript

Ich habe eine Seite mit einer Reihe von verschiedenen Tasten und jede Taste hat ihre eigenen Parameter.

Ich möchte eine .txt-Datei als Protokoll erstellen und dann jedes Mal, wenn jemand auf eine der Schaltflächen klickt, mit den Parametern und der Schaltfläche, auf die geklickt wurde, in das Protokoll schreiben. Jede Taste hat ihre eigene Funktion, also nehme ich an, ich würde einfach die Funktion erstellen und sie dann am Anfang jeder Funktion mit den Parametern der Funktion hinzufügen.

Also müsste ich die txt-Datei mit onLoad() erstellen Ich denke, und dann eine Funktion zum Schreiben in der TXT-Datei jedes Mal, wenn eine Schaltfläche geklickt wird.

Ich habe versucht:

function WriteToFile(passForm) { 

    set fso = CreateObject("Scripting.FileSystemObject"); 
    set s = fso.CreateTextFile("logs\log1.txt", True); 
    s.writeline("HI"); 
    s.writeline("Bye"); 
    s.writeline("-----------------------------"); 
    s.Close(); 
} 

hatte aber kein Glück, und ich erhalte eine Fehlermeldung Objekt am Anfang der set fso Linie erwartet zu sagen.

Irgendwelche Ideen, wie Sie das lösen oder besser umsetzen können?

UPDATE Deshalb möchte ich nur eine Protokolldatei erstellen und mit Daten ein Benutzer klickt auf ein Buttons Ich weiß nur so jedes Mal gefüllt werden, wer was zu klicken. Alle meine Dateien sind in einem Server, also möchte ich nur die Textdatei dort erstellen und sie mit Informationen füllen.

+0

Sind Sie sicher, dass wir hier über JavaScript sprechen (Schwerpunkt _Script_) hier ...? – CBroe

+0

@CBroe gut, ich habe Erfahrung mit JavaScript und deshalb würde ich es gerne so machen. Was denkst du noch? – randomizertech

+0

Sie möchten in eine Textdatei auf dem Client-Computer einloggen? – MikeSmithDev

Antwort

1

Versuchen Sie dies zu tun?

http://www.yaldex.com/wjscript/jsfilecreateTextFile.htm

Wenn dem so ist, das ein aktives x Objekt verwendet. Das wäre eine ie Sache.

+0

Das ist in Ordnung, ich benutze IE sowieso – randomizertech

+0

Es gibt mir eine Warnung über ActiveX, gibt es eine Möglichkeit, das nicht zu zeigen? Außerdem gibt es mir einen Fehler, der sagt 'Falscher Dateiname oder Nummer' – randomizertech

+0

Sind alle Ihre" Benutzer "auch Internet Explorer? Lokalisierte Sachen werden nicht empfohlen. Vor allem die alten ActiveX-Objekte;) –

1

JavaScript hat in keinem Browser (standardmäßig) Zugriff auf eine beliebige Stelle im Dateisystem. Nicht einmal ein kleiner eigener Raum. Vielleicht möchten Sie in den HTML5-Speicher http://www.html5rocks.com/en/features/storage schauen.

Wenn ein Benutzer eine file.txt mit einem Protokollbericht anfordern würde, könnten Sie einen Download-Aufruf generieren und den zurückgegebenen Inhalt mit dem füllen, was im Storage-Objekt gespeichert ist.

+0

Ich möchte nicht den Benutzer über dieses vorhandene Protokoll wissen, das ist nur um zu sehen, welche Tasten am häufigsten benutzt werden – randomizertech

+0

Dann haben Sie das Thema JavaScript komplett verpasst. Alles auf JavaScript-Seite (Client-Seite) ist für jedermann sichtbar. Sie möchten diese Daten auf dem Server speichern und sie dann mit XHR-Aufrufen als Ihre nächstliegende Lösung abrufen. Mit welchem ​​serverseitigen Skript arbeiten Sie? –

+0

@randomizertech Wenn sie auf eine Schaltfläche klicken, haben Sie wahrscheinlich eine Art Postback ... Sie würden sich während des Postbacks auf dem Server anmelden. – MikeSmithDev

5

Sagen Sie haben folgende HTML-Code mit verschiedenen Tasten

<input type='button' name='button1' class='capture' /> 
<input type='button' name='button2' class='capture' /> 
<input type='button' name='button3' class='capture' /> 

Und wenn eine Schaltfläche geklickt wird Sie Namen Schaltfläche erhalten und es an den Server senden mit folgenden Ajax-Aufruf auf Logfile zu schreiben. Angenommen, Sie haben PHP auf Server-Seite

$(".capture").click(function(){ 

    var buttnName=$(this).attr('name'); 
    $.ajax({ 
     type:"POST", 
     data:"ClickedButton="+buttonName, 
     url: "server.php", 
     success: function(data){ 

     alert('Written in Log File'); 
    } 
    }); // END Ajax 
    }); 

in server.php folgenden Code verwendet werden, das auf der Protokolldatei schreiben

$myFile = "logfile.txt"; \\Considering the text file in same directory where server.php is 
    $fh = fopen($myFile, 'w') or die("can't open file"); 
    $stringData =$_POST['ClickedButton'] ; 
    fwrite($fh, $stringData); 
    fclose($fh); 

ist nicht einfach? Hinweis: Sie brauchen Jquery für diesen Zweck

+0

Ich habe aber keine Erfahrung mit PHP :(Ich füge das einfach in eine Datei ein und speichere es als php? – randomizertech

+0

Dann musst du nur die Server-seitige Codierung ändern und dann gehts gut;) –

Verwandte Themen