0

我在我的 HTA 中同时使用 javascript/vbscript,并在 VBS 循环内为我的 HTA 接口构建表。当我简单地运行时:

strHTML = strHTML & "<tr>" &_ 
        "<td><a id=""" & aName & """ href=""javascript:toggleRow('" & rowName & "','" & arrTemp(1) & "','" & aName & "')"">+ </a>" & arrTemp(1) & "</td>" & _
        "<td>" & arrTemp(2) & "</td><td class='status'>" & _
        "<img onclick=""displayRow()"" src='" & strStatus & "' border='0'></td></tr>" & _
        "<tr id='" & rowName & "' style=""display:none;""><td id='" & arrTemp(1) & "' colspan=""3"">test</td></tr>"

...我的 HTA 显示正常。但是,当我尝试将 Javascript 函数添加到我的 TR 标签时,我会收到各种 VBS 错误:

strHTML = strHTML & "<tr onmouseover=""ChangeColor(this, true);"" onmouseout=""ChangeColor(this, false);"" onclick=""DoNav();"">" &_ 
        "<td><a id=""" & aName & """ href=""javascript:toggleRow('" & rowName & "','" & arrTemp(1) & "','" & aName & "')"">+ </a>" & arrTemp(1) & "</td>" & _
        "<td>" & arrTemp(2) & "</td><td class='status'>" & _
        "<img onclick=""displayRow()"" src='" & strStatus & "' border='0'></td></tr>" & _
        "<tr id='" & rowName & "' style=""display:none;""><td id='" & arrTemp(1) & "' colspan=""3"">test</td></tr>"

我很确定我已经正确注释掉了额外的引用,但我无法让它工作。谁能在第一行看到我做错了什么?

编辑:此外,如果我保留所有 on* 事件及其相关的 4 个引号,但删除所有内部 javascript 函数,则页面加载正常,如果这有帮助的话

4

1 回答 1

1

啊……找到答案了。HTA 将这些功能解释为 VBS 功能。对 javascript 的显式声明是诀窍:

strHTML = strHTML & "<tr onmouseover=""javascript:ChangeColor(this, true);"" onmouseout=""javascript:ChangeColor(this, false);"" onclick=""javascript:DoNav();"">" &_ 
                          "<td><a id=""" & aName & """ href=""javascript:toggleRow('" & rowName & "','" & arrTemp(1) & "','" & aName & "')"">+ </a>" & arrTemp(1) & "</td>" & _
                          "<td>" & arrTemp(2) & "</td><td class='status'>" & _
                          "<img src='" & strStatus & "' border='0'></td></tr>" & _
                          "<tr id='" & rowName & "' style=""display:none;""><td id='" & arrTemp(1) & "' colspan=""3"">test</td></tr>"
于 2010-12-31T19:34:26.500 回答