0

我编写了一个 HTA,它从一堆文本文件中读取信息,并使用以下伪逻辑将结果显示到屏幕上:

  • 遍历目录并将每个文本文件的内容添加到数组中
  • 循环遍历数组的二维结构以构建表格布局
  • 使用 setInterval 计时器更新自身

    我最初是用纯 vbscript/HTML 编写的,效果很好,但后来我需要一种方法来按第三列或 array[x][2] 值对显示的结果进行排序。

所以我转向了 javascript,因为它有更友好/更快的数组使用。我重写了函数,使伪逻辑看起来像:

  • 遍历目录并将每个文本文件的内容添加到 JAVASCRIPT 数组
  • 按数组 [x][2] idx 对 JAVASCRIPT 数组进行排序
  • 使用分隔符将 2D JS 数组展平为字符串
  • 将排序后的 JS 字符串拆分为 VBS 数组并以完全相同的方式构建表格布局
  • 使用 setInterval 计时器更新自我

在解决了语法错误之后,初始 HTA 加载就像我想要的那样完美地工作。但是现在,在 setInterval() 更新时,我得到了一个通用的 JS 错误:

  • 线路:1
  • 字符:1
  • 错误:对象不支持此属性或方法
  • 代码:0
  • 网址:file:///pathToHTA.hta

我已经注释掉了我在 setInterval() 中使用的整个更新函数,以便调用该函数,但它实际上并没有做任何事情,我仍然得到错误。

我不知道从这里去哪里,希望有人能给我一些关于可能导致此错误的指示。提前致谢。

4

1 回答 1

0

所以我发现了问题:

无论出于何种原因,我不得不切换脚本声明的顺序。在原来的错误中,我按以下顺序声明我的脚本:

<script type="text/javascript">
   ...
</script>

<script type="text/vbscript">
   ...
</script>

解决方法是(无论出于何种原因),我不得不翻转声明。

我更改了顺序,以便首先列出我的 vbscript 函数,然后列出 javascript 函数,这解决了错误....有人知道为什么会这样吗?

于 2010-12-08T16:39:06.740 回答