2013-03-27 55 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

相关问题