0

我正在尝试制作一个 hta(html 应用程序),您可以在其中将名称添加到数组中,然后找出某个名称是否在数组中。当我关闭并重新打开 hta(或刷新 html)时,没有保存任何名称。我如何做到这一点,以便当我运行添加名称的函数时,代码与其中包含名称的变量一起保存。

这是添加名称的功能

    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 的答案。

请帮我。

4

4 回答 4

0

这就是javascript的工作方式。当浏览器关闭时,您添加到数组中的任何值都不会保存。这就是数据库的作用。jQuery 也无法做到这一点。

于 2013-03-27T19:05:42.220 回答
0

本地存储可能会对您有所帮助。例如:

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

您可以添加、更改或删除本地存储中的数据。但它是有限的。您可以在此处了解有关 localStorage 的更多信息:HTML5 Web Storage

于 2013-03-27T19:29:15.653 回答
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()会导致文本文件被安全地“保存”。
于 2013-03-27T19:08:34.620 回答
0

用户2216996

如果您真的需要询问,那么您不需要数据库来处理您正在做的事情。试试“嘿,脚本专家!” http://blogs.technet.com/b/heyscriptingguy/archive/2007/11/09/hey-scripting-guy-how-can-i-save-information-in-an-hta-as-a-的解决方案制表符分隔值文件.aspx

如果您真的想了解数据库,那么我建议您访问http://en.wikipedia.org/wiki/Database并开始阅读。

于 2013-05-17T12:57:45.927 回答