2013-03-27 60 views
0

我試圖做一個hta(html應用程序),您可以在其中添加名稱到一個數組,然後找出如果某個名稱在數組中。當我關閉並重新打開hta(或刷新html)時,沒有任何名稱被保存。我如何做到這一點,以便當我運行添加名稱的函數時,代碼將保存在名稱中的變量中。如何在hta中保存一個變量,這樣在關閉並打開hta後,它會被保存下來?

這是添加名字

var names = [] 
    function addName(first, last){ 
    names.push(first + " " + last) 
} 

function realAddName(eventObject){ 
    var addFirstName = document.getElementById("addFirstName")//the input box for the first name 
    var addLastName = document.getElementById("addLastName")//the input box for the last name 
    addName(addFirstName.value, addLastName.value) 
    alert("The name you input is now added to the thing.") 
} 

我沒有jQuery的功能,所以不要給我使用jQuery的答案。

請幫幫我。

回答

0

這就是JavaScript的工作原理。當瀏覽器關閉時,您添加到陣列的任何值都不會被保存。這是數據庫的作用。 jQuery也無法做到這一點。

+0

什麼是數據庫,我該如何使用它? – user2216996 2013-04-04 01:06:17

+0

什麼是數據庫,如何製作一個/使用一個? – user2216996 2013-04-04 01:17:06

0

您需要將應用程序的狀態保存到磁盤。因爲這是一個HTA,這意味着您可以使用Scripting.FileSystemObject與本地文件系統進行交互。

var fs = new ActiveXObject("Scripting.FileSystemObject"); 
var textFile = fs.CreateTextFile("foo.txt"); 
textFile.WriteLine(someVariable); 
textFile.Close(); 
  • fs是一個對象,使您可以訪問本地文件系統:FileSystemObject
  • FileSystemObject有一個名爲CreateTextFile磁盤上創建一個新的文本文件,併爲您提供了一個對象的方法(textFile),可以使用將文本寫入此文件。
  • WriteLine將一些文本寫入文件 .Close()導致文本文件被安全「保存」。
+0

你能用一種更簡單的方式解釋它的作用嗎? – user2216996 2013-04-04 01:16:29

+0

我已更新我的問題。 – Dai 2013-04-04 01:35:06

+0

是否可以使用數組而不是文本文件?另外,我將如何搜索以查看數組中的內容? – user2216996 2013-04-06 01:26:30

0

本地存儲可能會幫助你。例如:

function addName(first, last) { 
    localStorage.setItem("usr123", first + " " + last) 
} 

您可以在本地存儲中添加,更改或刪除數據。但它是有限的。你可以找到更多關於這裏的localStorage:HTML5 Web Storage

相關問題