2013-04-08 60 views
5

我一直在試圖做到這一點沒有運氣,所以我決定問這個。使用JavaScript創建日誌文本文件

我有一個頁面與一羣不同的按鈕,每個按鈕都有它自己的參數。

我想創建一個文本文件作爲日誌,然後每次有人點擊日誌的參數和被點擊的按鈕中的一個按鈕寫。 每個按鈕都有自己的功能,所以我假設我只是創建函數,然後使用函數的參數將它添加到每個函數的開頭。

所以我需要創建一個使用的onLoad()我想txt文件,然後創建一個函數在.txt文件每次按鈕被點擊的時間來寫。

我想:

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(); 
} 

,但沒有運氣,我得到一個錯誤說對象預期在set fso行的開頭。

如何解決這個或以更好的方式實現它的任何想法?

UPDATE 所以我只是想創建一個日誌文件,並讓每一個用戶點擊一個按鈕時充滿了數據只是讓我知道是誰在點擊什麼。我所有的文件都在服務器中,所以我只想在那裏創建文本文件並用信息填寫。

+0

您確定我們在這裏討論JavaScript(重點在_Script_)...? – CBroe 2013-04-08 14:02:16

+0

@CBroe,我有JavaScript經驗,所以我想這樣做。你還有什麼想法? – randomizertech 2013-04-08 14:03:33

+0

你想記錄到客戶計算機上的文本文件? – MikeSmithDev 2013-04-08 14:06:11

回答

1

你試圖做到這一點?

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

如果是這樣,使用有源x對象。這將是一件事情。

+0

這很好,我反正用IE11 – randomizertech 2013-04-08 14:05:23

+0

它給了我一個有關ActiveX的警告,有沒有什麼辦法不顯示?此外,它給了我一個錯誤,說'壞文件名或號碼' – randomizertech 2013-04-08 14:08:14

+0

所有你的「用戶」也使用Internet Explorer?本地化的東西不建議。特別是古老的ActiveX對象;) – 2013-04-08 14:11:13

1

的JavaScript,在沒有瀏覽器(默認設置),可以訪問文件系統中的任何地方。甚至沒有一點自己的空間。您可能想要查看HTML5存儲http://www.html5rocks.com/en/features/storage

如果用戶請求帶有日誌報告的file.txt,則可以生成下載調用並填充存儲在存儲對象中的內容返回的內容。

+0

我不想讓用戶知道這個現有的日誌,這是僅用於開發目的,以查看哪些按鈕被最多使用 – randomizertech 2013-04-08 14:12:01

+0

然後,您完全錯過了JavaScript的使用主題。任何人都可以看到JavaScript端(客戶端)的所有內容。您需要將這些數據存儲在服務器上,然後將XHR呼叫作爲您最接近的解決方案進行檢索。你在使用什麼服務器端腳本? – 2013-04-08 14:15:29

+0

@randomizertech如果他們點擊一個按鈕,那麼你可能有某種回傳...你會在回發期間在服務器上進行日誌記錄。 – MikeSmithDev 2013-04-08 14:16:03

5

說,你有以下的HTML標記有不同的按鈕

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

當一個按鈕被點擊你得到按鈕的名稱,並將其發送到服務器上的日誌文件寫有下列AJAX調用。假設你有PHP的服務器端

$(".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 
    }); 
server.php

下面的代碼將被用於在日誌文件中寫

$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); 

還不簡單? 注意:您需要jQuery爲此目的

+0

雖然我沒有使用PHP的經驗:(我只是將它粘貼到一個文件中並保存爲php? – randomizertech 2013-04-08 15:05:36

+0

然後你只需要更改服務器端編碼,然後你就可以走了;) – 2013-04-08 15:10:08