如何使用VBScript在HTA文件中操作DropDownBox名称

我正在创build一个使用VBScript创build,写入和读取Excel文件的HTA文件。 基本上,Excel文件将是“网站名称,login名和密码”(最终encryption)的数据库,而HTA只是提供了一个界面,可以在文本框中轻松查看这些信息。

我想创build一个“下拉框”,它预先填充了当前存储在Excel文件中的所有帐户。 这样当用户select账户名时,会显示相应的login名和密码。

下拉框的典型代码:

<select size="1" name="DropDownBox" onChange="ReadDropdown"> <option value="0"></option> <option value="1">Account 1</option> <option value="2">Account 2</option> <option value="3">Account 3</option> </select> 

而不是查看“帐户1 … 2 … 3等”我希望程序读取当前存储在Excel文件中的“网站名称”,而不是在下拉框中使用这些名称。

例:

 <select size="1" name="DropDownBox" onChange="ReadDropdown"> <option value="0"></option> <option value="1">Facebook</option> <option value="2">GMAIL</option> <option value="3">Stack Over Flow</option> </select> 

我不能提前指定名称,因为我不知道什么帐户将包含在Excel文件中。 我假设我可以修改下拉框选项的“值”,但是这不会改变用户实际看到的文本(例如在文本框中)。


我想出了一个“有趣”的想法。 如果我创build了第二个HTA文件来充当“Loader”呢? 装载程序HTA程序将执行以下操作:

  • 打开Excel程序以查看文件中当前有哪些网站帐户
  • 打开主HTA文件,并使用Excel文件中find的帐户名称进行编辑,然后保存。
  • 然后运行新保存的主要HTA文件
  • 并closures本身(装载HTA)

只是一个想法。

3个步骤。

  1. 创build空跨度并在您想要查看下拉框的位置分配ID

    <span id= MyDropdownBox > <span>

  2. 创build一个Sub从Excel中读取值,并用HTML代码填充空白区域。 代码的HTML部分应该在引号内,variables不是。 我想你将不得不把它放在一条线上,以获得更好的可靠性!

    Sub DisplayDropdownBox() '// Your code to get the values from Excel and assign to variables . '// Then fill the empty span with dropdown list with values you got. MyDropDownBox .InnerHTML = "<select size='1' name='DropDownBox' onChange='ReadDropdown'> <option value="0"></option> <option value="1">" Var1 "</option> <option value="2">" var2 "</option> <option value="3">" Var3 "</option> </select>" End Sub

  3. 把这种代码放到VB脚本的开头,每次运行或刷新hta窗口时都会调用它。Sub Sub Window_onLoad DisplayDropdownBox() End Sub

PS:我很难格式化这个文本,所以如果有人想改进格式,可以试试。 你也可以在原始文本文件myanswer.txt中查看我的答案

谢谢你的回应。

@ilo我有一个问题,让你的答案工作,但最后搞清楚了。 我必须在步骤2中对代码进行一些更改。以下是最终的工作结果:

 MyDropDownBox.InnerHTML = "<select size='1' name='DropDownBox' onChange='ReadDropdown'> <option value="0"></option> <option value=" & 1 & ">" & Var1 & "</option> <option value=" & 2 & ">" & var2 & "</option> <option value=" & 3 & ">" & Var3 & "</option> </select>" End Sub 

** ilo的步骤1和3仍然需要。

一旦我想出来,我最终修改了它以适应我自己的代码,但是我把它放在这里,作为其他人可能会觉得有用的一个通用示例。

@ilo – 我将把你的回答标记为答案,但是由于我需要在添加值和variables时使用“&”符号进行小的更改,所以我想我会自己重写。 但是,我给你答案的全部信用,所以谢谢你。